Раздел помощи SpaceWeb
Поиск:     Расширенный поиск

Контроль доступа через .htaccess для apache2.4

Файл .htaccess позволяет производить дополнительную конфигурацию веб-сервера Apache для:

  • переадресации на другой домен
  • контроля доступа к сайту
  • изменения значений директив PHP
  • отображения собственных страниц ошибок

Директивы для веб-сервера Apache2.4+ отличаются от Apache2.2. В примерах указаны директивы для обеих версий web-серверов.

Для контроля доступа к сайту можно использовать следующие директивы:

Важно: нельзя использовать директивы для веб-сервера Apache2.4+ и Apache2.2 одновременно. Это может привести к некорректной работе сайта.

Домены с кириллическими символами

При использовании кириллических доменных имён в файле .htaccess, их необходимо указывать в формате Punycode. Перекодировать их можно с помощью сервиса.

Отклонить все запросы

Apache 2.2

Order deny,allow
Deny from all

Apache 2.4

Require all denied

Разрешить все запросы

Apache 2.2

Order allow,deny
Allow from all

Apache 2.4

Require all granted

Запретить доступ на основе имени хоста

Apache 2.2

Order Allow,Deny
Allow from all
Deny from example.com

Apache 2.4

<RequireAll>
Require all granted
Require not host example.com
</RequireAll>

Использование директив <RequireAll> и Require all granted обязательны если используется более сложная конструкция.

Запретить доступ на основе IP-адреса

Для ограничения доступа к сайту с определённых IP-адресов в файл .htaccess требуется добавить:

Apache 2.2

Order Allow,Deny
Allow from all
Deny from 111.111.111.111
Deny from 222.222.222.222
Deny from 123.123.123.123

Apache 2.4

<RequireAll>
Require all granted
Require not ip 111.111.111.111
Require not ip 222.222.222.222
Require not ip 123.123.123.123
</RequireAll>

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

Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:

Apache 2.2

<Files ПУТЬ_К_ФАЙЛУ>
Order Allow,Deny
Allow from all
Deny from 123.123.123.123
</Files>

Apache 2.4

<Files ПУТЬ_К_ФАЙЛУ>
<RequireAll>
Require all granted
Require not ip 123.123.123.123
</RequireAll>
</Files>

где ПУТЬ_К_ФАЙЛУ - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет запрещен доступ.

Разрешить доступ к определенному файлу с IP-адреса

Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:

Apache 2.2

<Files ПУТЬ_К_ФАЙЛУ>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Files>

Apache 2.4

<Files ПУТЬ_К_ФАЙЛУ>
Require ip 77.222.44.126
Require ip 123.123.123.123
</Files>

где ПУТЬ_К_ФАЙЛУ - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет разрешен доступ.

Запретить доступ по User-Agent (блокировка ботов)

Apache 2.2

SetEnvIfNoCase User-Agent "AESOP_com_SpiderMan" bad_bot
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
Order Allow,Deny
Allow from all
Deny from env=bad_bot

Apache 2.4

<If "%{HTTP_USER_AGENT} =~ m#BadBot#i">
Require all denied
</If>

где BadBot - необходимо заменить на User_Agent, которым представляется бот. Узнать его можно из лога запросов.


enlightened Полный список и подробности того, какие директивы доступны для редактирования через файл .htaccess, предоставлены в официальной документации PHP и веб-сервера Apache2.4:


Не нашли ответ на свой вопрос? Позвоните нашим специалистам по бесплатному телефону 8-800-100-16-15.