.htaccess — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), не предоставляя доступа к главному конфигурационному файлу, таких как управляемый доступ к каталогам, переназначение типов файлов и т. д.

Директивы .htaccess

Перенаправление (редирект)

На другой адрес

Redirect / http://www.example.com

При запросе определенных страниц

redirect /data http://www.expample.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

Работает только при наличии mod_rewrite

Удаление префикса «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

AddHandler application/x-httpd-php5 .php .htm .html .phtml

Обработка ошибок

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

Кодировка

Отдаваемых файлов

AddDefaultCharset windows-1251

Загружаемых файлов

CharsetSourceEnc windows-1251

Управление доступом

Запрет доступа к файлам

Запрет доступа ко всем файлам и каталогам в текущем каталоге

deny from all

Запрет доступа к определенному файлу

deny from all

Запрет доступа к файлам по маске

deny from all

Спецсимволы для определения маски

? — любой одиночный символ * — любая последовательность символов, исключая символ / (слэш)
Запрет доступа к файлам по регулярному выражению

deny from all

Определение доступа по IP

order deny,allow
deny from all
allow from 192.168.11.1

Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 192.168.11.1. Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыт, так как директива deny, выполняемая последней перекроет действия директивы allow.

Закрытие каталогов паролем

файл .htaccess

AuthName "Auth message"
AuthType Basic require [username2] … [usernameN]>
AuthUserFile "/full/path/to/.htpasswd"

Пароли хранятся в файле .htpasswd