Файл .htaccess

.htaccess позволяет задавать дифференцированные настройки для отдельных директорий не изменяя основные параметры сервера. Его синтаксис полностью идентичен httpd.conf, однако действие распространяется только на каталог с файлом и его содержимое. При этом каждая из вложенных папок может содержать собственный .htaccess, который будет переопределять команды, изложенные в вышележащих конфигурационных файлах.

Ключевые возможности .htaccess

Указание страниц ошибок, выводимых в случае тех или иных проблем на сервере:

ErrorDocument 404 /errors/404.html

В указанном примере можно подставить любой из стандартных кодов состояния HTTP;

Установка HTML-заглушек на время проведения технического обслуживания:

RewriteCond %{REMOTE_ADDR}  !192.168.0.1
RewriteCond %{REMOTE_ADDR}  !127.0.0.1
RewriteRule !maintenance.php$ http://www.example.com/maintenance.html [L,R=307]

Зайти на интернет-ресурс сможет только администратор с условным IP 192.168.0.1, остальным посетителям демонстрируется "заглушка" maintenance.html.

Настройка кэширования веб-документов на уровне сервера или браузера пользователя;

<FilesMatch "\.(gif|jpg|png|ico)$">
Header set Cache-Control "max-age=29030400, private"
</FilesMatch>

Выше задано время кэширования изображений и иконок сроком на 1 год (в секундах);

Генерация ЧПУ (человекопонятных URL) путем преобразования запросов CMS к базе данных. Реализуется посредством регулярных выражений:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

RewriteRule ^index\.php$ http://example.com/ [R=301,L]

Директива поможет исключить index.php из всех URL;

Защита директории или файла с помощью пароля (хранится в файле .htpasswd). Например, ограничение доступа к admin.php будет выглядеть так:

<Files admin.php>

AuthType basic

AuthName 'Пожалуйста, авторизуйтесь'

AuthUserFile '/home/example.com/.htpasswd'

Require valid-user

</Files>

При переходе в админку пользователь увидит окошко с надписью "Пожалуйста, авторизуйтесь" и форму для ввода логина и пароля.