Как через htaccess разрешить/запретить доступ к сайту/папке/файлу

Как заблокировать доступ к сайту для всех

Чтобы полностью закрыть доступ к сайту, допишите в .htaccess:

deny from all # Запрещает доступ к сайту всем IP адресам

Однако учитывайте, что доступ будет блокирован для всех пользователей, включая и вас. Открыть доступ для конкретного пользователя можно прописав его IP-адрес. Вот код, который для этого потребуется:

order deny,allow 
deny from all 
allow from xxx.xxx.xxx.xxx

Где, xxx.xxx.xxx.xxx — Ваш ip адрес. Узнать свой текущий ip, можно например тут: https://2ip.ru

Как закрыть доступ к определенной папке в структуре сайта

Если нужно закрыть доступ к определенной папке на сайте, то создайте отдельный файл .htacess в той папке, которую хотите скрыть и пропишите там то же самое, как в примере выше:

deny from all # Запрещает доступ к папке всем IP адресам

Либо:

<FilesMatch ~ "\.(php|htm|html|js)$"> 
  Order allow,deny
  Deny from all
</FilesMatch>

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

Также, можно поставить запрет на просмотр директорий

Для предотвращения просмотра директорий сайта добавьте в .htaccess следующий код:

Options All -Indexes

Если же по какой-то причине вы хотите разрешить просмотр всех директорий, используйте код:

Options All +Indexes

Как запретить доступ к сайту только определенному IP

Чтобы полностью закрыть доступ к сайту для одного IP, допишите в .htaccess:

deny from XXX.XXX.XXX.XXX # Закрывает доступ для указанного IP. Если IP много, разделяйте их пробелом.

Как управлять доступом к определенному файлу

Если вы хотите, чтобы для разных файлов на сайте были разные настройки доступа, вы можете воспользоваться командой <Files>. Например, чтобы закрыть доступ к файлу wp-admin.php для всех, кроме вас, допишите в .htaccess:

<Files wp-admin.php>

order deny,allow # Определяет порядок исполнения других команд. Сейчас allow выполняется после deny.

deny from all # Запрещает доступ к файлу всем IP адресам

allow from XXX.XXX.XXX.XXX # Открывает доступ для указанного IP. Если IP много, разделяйте их пробелом. </Files>

Таким же образом можно закрыть доступ и к самому .htaccess:

<Files .htaccess>

order deny,allow # Определяет порядок исполнения других команд. Сейчас allow выполняется после deny.

deny from all # Запрещает доступ к файлу всем IP адресам

allow from XXX.XXX.XXX.XXX # Открывает доступ для указанного IP. Если IP много, разделяйте их пробелом.

</Files>

Запретить доступ с определенных IP-адресов с помощью .htaccess

Если нужно запретить определенному пользователю доступ к вашему сайту, используйте его IP-адрес или доменное имя, с которого он переходит. Например:

deny from 012.345.678.910
Чтобы запретить доступ определенной группе IP, уберите из адреса последние три цифры:
deny from 012.345.678.
Приведенное выше правило блокирует доступ к сайту IP-адресам в диапазоне от 012.345.678,0 до 012.345.678,255.

Запретить доступ с определенных доменов через .htaccess

Бывают случаи, когда нужно заблокировать доступ для всех посетителей, которые осуществляют переход с определенного сайта. Приведенное ниже правило будет выводить ошибку 403 Forbidden для любого пользователя, перешедшего на сайт по ссылке, размещенной в badsite.net:

SetEnvIfNoCase Referer "badsite.net" bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer
Также для всех, кто перешел с указанного домена, можно выводить ошибку 500 Internal Server Error:
RewriteEngine on
RewriteCond %{HTTP_REFERER} badsite.net [NC,OR]
RewriteRule .* - [F]

Блокирование запросов от определенных браузеров

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

RewriteEngine On 
RewriteBase / 
SetEnvIfNoCase Referer "^$" bad_user
SetEnvIfNoCase User-Agent "^badbot" bad_user
SetEnvIfNoCase User-Agent "^badbot1" bad_user
SetEnvIfNoCase User-Agent "^badbot2" bad_user
Deny from env=bad_user

Замените badbot, badbot1 и т. д. именами ботов из вашего журнала. Это закроет посторонним программам доступ к вашему сайту.