Иногда нужно заблокировать 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-сервера.