Файл .htaccess позволяет производить дополнительную конфигурацию веб-сервера Apache для:
- переадресации на другой домен
- контроля доступа к сайту
- изменения значений директив PHP
- отображения собственных страниц ошибок
Директивы для веб-сервера Apache2.4+ отличаются от Apache2.2. В примерах указаны директивы для обеих версий web-серверов.
Для контроля доступа к сайту можно использовать следующие директивы:
- Отклонить все запросы
- Разрешить все запросы
- Запретить доступ на основе имени хоста
- Запретить доступ на основе IP-адреса
- Запретить доступ совсех IP-адресов, кроме нужного
- Запретить доступ к определенному файлу
- Разрешить доступ к определенному файлу с IP-адреса
- Запретить доступ по User-Agent (блокировка ботов)
Важно: нельзя использовать директивы для веб-сервера Apache2.4+ и Apache2.2 одновременно. Это может привести к некорректной работе сайта.
Домены с кириллическими символами
При использовании кириллических доменных имён в файле .htaccess, их необходимо указывать в формате Punycode. Перекодировать их можно с помощью сервиса.
Отклонить все запросы
Apache 2.2
Apache 2.4
Разрешить все запросы
Apache 2.2
Apache 2.4
Запретить доступ на основе имени хоста
Apache 2.2
Apache 2.4
Использование директив <RequireAll> и Require all granted обязательны если используется более сложная конструкция.
Запретить доступ на основе IP-адреса
Для ограничения доступа к сайту с определённых IP-адресов в файл .htaccess требуется добавить:
Apache 2.2
Apache 2.4
Запретить доступ со всех IP-адресов, кроме нужного
Для ограничения доступа к сайту со всех IP-адресов, кроме нужного (разрешенных IP-адресов может быть несколько), в файл .htaccess требуется добавить:
Apache 2.2
Apache 2.4
Запретить доступ к определенному файлу
Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:
Apache 2.2
Apache 2.4
где ПУТЬ_К_ФАЙЛУ - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет запрещен доступ.
Разрешить доступ к определенному файлу с IP-адреса
Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:
Apache 2.2
Apache 2.4
где ИМЯ_ФАЙЛА - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет разрешен доступ.
Запретить доступ по User-Agent (блокировка ботов)
Apache 2.2
Apache 2.4
где BadBot - необходимо заменить на User_Agent, которым представляется бот. Узнать его можно из лога запросов.
Полный список и подробности того, какие директивы доступны для редактирования через файл .htaccess, предоставлены в официальной документации PHP и веб-сервера Apache2.4: