Директивы .htaccess
Перенаправление (редирект)
[править]На другой адрес
[править] Redirect /index.php http://example.com/index.php
При запросе определённых страниц
[править] Redirect /data http://www.example.com/data
Redirect /forum http://forum.example.com
По маске имени файла
[править]Следующие строки определяют, что все запросы, кроме запросов к файлам с расширениями .gif и .jpg, будут перенаправлены на файл index.php:
RewriteEngine On
RewriteRule !.(gif|jpg)$ index.php
Работает только при наличии mod_rewrite.
По IP-адресам
[править]Если посетитель имеет IP-адрес 192.168.11.1, то ему будет открыта страница data.html:
SetEnvIf REMOTE_ADDR 192.168.11.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /data.html
Если посетители имеют IP-адреса 192.168.11.1 и 192.168.11.2, то им будет открыт адрес http://example.com
:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} (192.168.11.1|192.168.11.2)
RewriteRule .* http://example.com [R=301,L]
Работает только при наличии mod_rewrite.
RewriteCond %{HTTP_REFERER} http://example.com
RewriteRule ^/original.html$ /another.html [L]
В данном случае все посетители пришедшие с сайта example.com вместо файла original.html получат файл another.html.
Удаление префикса «www.» из адреса
[править]Перенаправление с http://www.mydomain.com
на http://mydomain.com
:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]
RewriteRule (.*) http://mydomain.com/$1 [R=301]
Работает только при наличии mod_rewrite.
Индексные страницы
[править]Переопределение индексного файла
[править] DirectoryIndex index.html index.php index.shtml
Запрет на отображение содержимого каталога при отсутствии индексного файла
[править] Options -Indexes
Типы файлов
[править]Изменение обработчика по типу файла
[править]Пример переопределения HTML-файлов для обработки их с помощью PHP:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Обработка ошибок
[править]ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html
При этом размер конечного файла должен быть больше 515 байт, иначе некоторые браузеры могут подменить страницу своей стандартной.
Кодировка
[править]Отдаваемых файлов
[править] AddDefaultCharset windows-1251
Загружаемых файлов
[править] CharsetSourceEnc windows-1251
Отдаваемых файлов конкретного типа
[править] AddCharset windows-1251 .js
Вместо .js можно указать несколько типов файлов, разделяя их пробелами.
Управление доступом
[править]Запрет доступа к файлам
[править]Запрет доступа ко всем файлам и каталогам в текущем каталоге:
Deny from all
Запрет доступа к определённому файлу:
<Files config.php>
Deny from all
</Files>
Запрет доступа к файлам по маске:
<Files *.inc>
Deny from all
</Files>
Спецсимволы для определения маски:
- ? — любой одиночный символ
- * — любая последовательность символов, исключая символ / (слэш)
Запрет доступа к файлам по регулярному выражению:
<Files ~ "\.(inc|conf|cfg)$">
Deny from all
</Files>
Order deny,allow
Deny from all
Allow from 192.168.11.1
Строка order deny, allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 192.168.11.1.
Order Allow,Deny
Allow from all
Deny from 192.140.170.219
Deny from 10.10.220.201
В этом примере наоборот запрещается доступ с определённых IP-адресов.
AuthName "Auth message"
AuthType Basic
require <valid-user | user <username1> [username2] ... [usernameN]>
AuthUserFile "/full/path/to/.htpasswd"
Пароли хранятся в файле .htpasswd.