Запрет доступа по IP через .htaccess

Иногда нужно заблокировать ip нежелательным личностям, это можно осуществить при помощи .htaccess. Синтаксис ниже разрешает доступ к сайту всем, запрещаем определенным IP-адресам:

Order allow,deny
allow from all
deny from 000.000.000.0
  • Order Allow,Deny — обрабатывает вначале разрешающее правило allow, а затем запрещающее deny.
  • Order Deny,Allow — обрабатываются вначале запрещающие deny, а потом разрешающие allow.

Примечание: Обязательно проверяйте корректность синтаксиса, в противном случае, велик риск получить ошибку 500 на сайте.

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

Order Deny,Allow
Deny from all
Allow from 000.000.000.0

Если вам нужно заблокировать всем доступ к определённой части сайта (например административной части), файл .htaccess должен располагаться непосредственно в этом разделе, например для сайта на WordPress, это будет директория wp-admin.

Order Allow,Deny

Но если нужно разрешить доступ к данной директории, определённым ip адресам, тогда конструкция в файле .htaccess, будет выглядеть следующим образом:

Order Allow,Deny
Allow from 000.000.000.00

Бывают случаи, когда нужно заблокировать лишь определённый файл в директории, например это будет файл .htaccess. И для того чтобы скрыть его во всех директорий сайта, синтаксис будет таким:

<Files .htaccess>
order deny, allow
deny from all
</Files>

Для предоставления доступа к файлу, с определённых ip, синтаксис будет таким:

<Files .htaccess>
order deny, allow
deny from all
allow from 000.000.000.00
</Files>

В данном примере, устанавливается запрет, на определённые группы файлов (gif и png):

<FilesMatch "\.(gif|png)$">
Order Deny,Allow
Deny from all
Deny from 000.00.00.0
</FilesMatch>

Примечание: Если у вас установлена связка nginx + apache, то для того, чтобы данные конструкции работали, потребуется установка и настройка дополнительных модулей, mod_rpaf или remoteip. Они нужны для того, чтобы передавалась верная переменная REMOTE_ADDR в которой содержится реальный ip клиента, а не локальный web-сервера.

    Мы используем файлы cookie. Подробнее — в наших условиях использования.