Информатизация и образование

Высшее образование - Информационная поддержка: новости ГИА и ЕГЭ, электронное обучение, библиотеки, программное обеспечение и борьба с плагиатом

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Как правильно настроить редирект или все о .htaccess

Приведенный ниже код позволяет поисковым роботам (в данном случае, googlebot) просматривать страницу и делает так, чтобы я, с моего IP, мог входить на сайт без пароля, а мой клиент и посетители – по паролю. 


AuthName "SiteName Administration"

AuthUserFile /home/sitename.com/.htpasswd

AuthType basic

Require valid-user

Order deny,allow

Deny from all

Allow from 24\\.205\\.23\\.222

Allow from w3.org htmlhelp.com

Allow from googlebot.com

Satisfy Any


Каждый образец кода скопирован с форума htaccessElite. Там же можно найти дополнительную информацию по каждому из образцов.
NB!: Большинство приведенных примеров можно использовать с директивой Files or Filesmatch, чтобы инструкции, содержащиеся в них, применялись только к конкретным файлам.
NB!: Инструкции, направленные на переопределение (rewrite) должны всегда предваряться следующими строками:

Options +FollowSymLinks

RewriteEngine On

RewriteBase /


Чтобы присвоить файлу тип независимо от его имени или расширения


#Делает так, что файлы, напр., image.gif, blah.html, index.cgi исполняются как php

ForceType application/x-httpd-php


Чтобы переадресовать запросы, созданные не по https протоколу на https, и решить проблему необходимости повторной авторизации при использовании htpasswd


SSLOptions +StrictRequire

SSLRequireSSL

SSLRequire %{HTTP_HOST} eq "google.com"

ErrorDocument 403 https://google.com


Редирект с битых ссылок, не вредящий SEO
Для одного удаленного файла


Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html


Для группы файлов типа blog/this.php?gh

RedirectMatch 301 /blog(.*) http://www.askapache.com/$1


При смене доменного имени


Redirect 301 / http://www.newdomain.com

Обязательное www в запросе

Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/robots\\.txt$

RewriteCond %{HTTP_HOST} !^www\\.example\\.com$ [NC]

RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]


Необязательное www в запросе


Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/robots\\.txt$ [NC]

RewriteCond %{HTTP_HOST} !^www\\.[a-z-]+\\.[a-z]{2,6} [NC]

RewriteCond %{HTTP_HOST} ([a-z-]+\\.[a-z]{2,6})$ [NC]

RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]


Убираем субдомен из строки запроса


Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} !^/robots\\.txt$

RewriteCond %{HTTP_HOST} \\.([a-z-]+\\.[a-z]{2,6})$ [NC]

RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]


Убираем субдомен из строки запроса


Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_HOST} \\.([^\\.]+\\.[^\\.0-9]+)$

RewriteCond %{REQUEST_URI} !^/robots\\.txt$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


Перенаправление всех посетителей на другой сайт, за исключением одного IP (бывает полезно при веб-разработке)


ErrorDocument 403 http://www.someothersite.com

Order deny,allow

Deny from all

Allow from 24.33.65.6


Операции над переменными (mod_env)
Установка часового пояса сервера:


SetEnv TZ America/Indianapolis


Установка email администратора сервера:


SetEnv SERVER_ADMIN Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript


Выключение ServerSignature
ServerSignature Off
Добавление языка и кодировки в заголовки без использования мета-тэгов
AddDefaultCharset UTF-8

# Или AddType 'text/html; charset=UTF-8' html

DefaultLanguage en-US
C использованием директивы Files


AddDefaultCharset UTF-8

DefaultLanguage en-US


C использованием директивы FilesMatch (более предпочтительно)


AddDefaultCharset UTF-8

DefaultLanguage en-US


Использование собственного файла php.ini с помощью mod_php или php, установленного как cgi
Статья на тему: Custom PHP.ini tips and tricks
Если php работает как модуль Apache (mod_php) в корневом файле .htaccess установите следующее:
SetEnv PHPRC /location/todir/containing/phpinifile
Если php установлен как cgi, поместите Ваш файл php.ini в директорию, содержащую php, в описываемом случае /cgi-bin/, а в файл htaccess добавьте следующее:
AddHandler php-cgi .php .htm Action php-cgi /cgi-bin/php5.cgi
Если cgi-php работет через оболочку (для FastCGI), необходимо в скрипте оболочки изменить #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /user3/x.com/htdocs/cgi-bin/php5.cgi на следующее #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /x.com/cgi-bin/php.cgi -c /abs/path/to/php.ini
Безопасность папок: Удаление возможности исполнять скрипты
Это можно сделать несколькими способами. К примеру:
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

Options -ExecCGI
Таким образом Вы определите, что файлы с перечисленными расширениями попадают в сферу действия команды -ExecCGI, а значит и -FollowSymLinks
Разрешение только методов GET и PUT при обращении к серверу.
Options -ExecCGI -Indexes -All +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_METHOD} !^(GET|PUT)

RewriteRule .* - [F]

Обработка всех файлов gif скриптом cgi

Action image/gif /cgi-bin/filter.cgi
Обработка запроса / файла в зависимости от метода
Script PUT /cgi-bin/upload.cgi
Форсированная загрузка файла вместо отображения его содержимого прямо в браузере
AddType application/octet-stream .avi

AddType application/octet-stream .mpg
А в HTML-коде достаточно поставить ссылку прямо на нужный файл.
Отображение исходного кода вместо выполнения скрипта
Если возникла необходимость отобразить файлы типа .pl, .py или .cgi в виде исходного кода, а не исполнять их как скрипты, создайте в папке, где они расположены, файл .htaccess, содержащий следующее:
RemoveHandler cgi-script .pl .py .cgi
Многократное увеличение скорости работы сайта при помощи кэширования!
Статья на тему: Speed Up Sites with htaccess Caching


# НА МЕСЯЦ

Header set Cache-Control "max-age=2592000"

# НА НЕДЕЛЮ

Header set Cache-Control "max-age=604800"

# НА ДЕНЬ

Header set Cache-Control "max-age=43200"


Предотвращение кражи изображений и файлов


Options +FollowSymLinks

RewriteEngine On

RewriteBase /

RewriteCond %{HTTP_REFERER} !^$

RewriteCond %{HTTP_REFERER} !^http://(www\\.)?askapache.com/.*$ [NC]

RewriteRule \\.(gif|jpg|swf|flv|png)$ http://www.askapache.com/evil-hotlinker.… [R=302,L]
Замена стандартных сообщений об ошибке


ErrorDocument 404 /favicon.ico

ErrorDocument 403 https://secure.htaccesselite.com

ErrorDocument 404 /cgi-bin/error.php

ErrorDocument 400 /cgi-bin/error.php

ErrorDocument 401 /cgi-bin/error.php

ErrorDocument 403 /cgi-bin/error.php

ErrorDocument 405 /cgi-bin/error.php

ErrorDocument 406 /cgi-bin/error.php

ErrorDocument 409 /cgi-bin/error.php

ErrorDocument 413 /cgi-bin/error.php

ErrorDocument 414 /cgi-bin/error.php

ErrorDocument 500 /cgi-bin/error.php

ErrorDocument 501 /cgi-bin/error.php


NB!: Вы можете также использовать внешние ссылки, но не делайте внешних ссылок на Ваш собственный сайт, чтобы не вредить его продвижению в поисковых системах.
Операция аутентификации
Запрос пароля на один файл:


AuthName "Prompt"

AuthType Basic

AuthUserFile /home/askapache.com/.htpasswd

Require valid-user


Защита паролем нескольких файлов:


AuthName "Development"

AuthUserFile /.htpasswd

AuthType basic

Require valid-user


Примеры использования директивы Allow:


# Частичное разрешение (доменное имя)

Allow from 10.1.0.0/255.255.0.0

# Полное разрешение на 1 IP

Allow from 10.1.2.3

# Полное разрешение на несколько IP

Allow from 192.168.1.104 192.168.1.205

# Разрешение при совпадении части IP адреса с образцом

Allow from 10.1

Allow from 10 172.20 192.168.2

# разрешение для пары сеть/маска подсети

Allow from 10.1.0.0/255.255.0.0

Использование переменных окружения в зависимости от посетителя:


SetEnvIf User-Agent ^KnockKnock/2\\.0 let_me_in

Order Deny,Allow

Deny from all

Allow from env=let_me_in

Разрешение для домена (при запрете для субдомена)

Order Allow,Deny

Allow from apache.org

Deny from foo.apache.org

Доступ с IP адреса без пароля, а не с IP – по паролю

AuthUserFile /home/www/site1-passwd

AuthType Basic

AuthName MySite

Require valid-user

Allow from 172.17.10

Satisfy Any
Блокирование доступа к файлам в определенные часы
Options +FollowSymLinks

RewriteEngine On

RewriteBase /

# В 16 часов закрыть доступ к файлам

RewriteCond %{TIME_HOUR} ^16$

RewriteRule ^.*$ - [F,L]
Пример базового файла .htaccess
Автор пользуется им, когда начинает делать новый сайт. По мере работы, оттуда удаляются куски кода или снимаются комментарии.


# Базовые установки

##############################################

Options +ExecCGI -Indexes

DirectoryIndex index.php index.html index.htm

### Умолчания ###

ServerSignature Off

AddType video/x-flv .flv

AddType application/x-shockwave-flash .swf

AddType image/x-icon .ico

AddDefaultCharset UTF-8

DefaultLanguage en-US

SetEnv TZ America/Indianapolis

SetEnv SERVER_ADMIN webmaster@^^SITE^^.^^TLD^^

### FAST-CGI ###

AddHandler fastcgi-script fcgi

AddHandler php-cgi .php

Action php-cgi /cgi-bin/php5-wrapper.fcgi

# Заголовки и кэширование

##############################################

#### КЭШИРОВАНИЕ ####

# НА ГОД

Header set Cache-Control "max-age=2592000"

# НА НЕДЕЛЮ

Header set Cache-Control "max-age=604800"

# НА 10 МИНУТ

Header set Cache-Control "max-age=600"

# НЕ КЭШИРОВАТЬ

Header unset Cache-Control

# ПЕРЕОПРЕДЕЛЕНИЯ И ПЕРЕНАПРАВЛЕНИЯ

##############################################

### SEO редирект ###

Redirect 301 /2006/uncategorized/htaccesselitecom-aboutus.html http://www.^^SITE^^.^^TLD^^

### ПЕРЕОПРЕДЕЛЕНИЯ ###

RewriteEngine On

RewriteBase /

# АВТОРИЗАЦИЯ

##############################################

AuthName "^^SITE^^.^^TLD^^"

Require valid-user

AuthUserFile /^^SITE^^.^^TLD^^/.htpasswd

AuthType basic

Отзывы и комментарии

blog comments powered by Disqus

Добавить комментарий

Защитный код
Обновить

You are here: Продвижение сайтов Как правильно настроить редирект или все о .htaccess