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

как запретить доступ к сайту

Существует несколько способов запретить доступ к вашему сайту с определенного домена или с определенного IP.

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

Как запретить доступ к сайту

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

Запрет доступа на PHP

Чтобы запретить доступ на сайт для посетителей переходящих по ссылкам с определенного домена и помощи PHP вам нужно открыть файл index.php который должен находиться в коренной директории вашего сайта и вставить в самое его начало следующую строку:

<?php
if( strpos( $_SERVER['HTTP_REFERER'], 'ПЛОХОЙ_ДОМЕН.com' ) !== FALSE){
print 'Вы перешли с ПЛОХОЙ_ДОМЕН.com - для вас сайт закрыт!';
exit();
}
?>

Выше приведенный php код предотвратит доступ к вашему сайту всем у кого в поле referer будет указан домен на который вы накладываете запрет и выведет этим посетителям пустую страницу с указанной в коде надписью. А следующий php код запретит доступ с определенного домена и перенаправит посетителей на указанный вами адрес (URL)

<?php
if( strpos( $_SERVER['HTTP_REFERER'], 'ПЛОХОЙ_ДОМЕН.com' ) !== FALSE){
header('Location: http://ВАШ_АДРЕС');
exit();
}
?>

Запрет доступа с определенного домена в htaccess

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

RewriteCond %{HTTP_REFERER} ^http://www.ПЛОХОЙ_ДОМЕН.(.*) [NC]
RewriteRule .* - [F]

И все, теперь всем тем кто переходит с домена который вы укажете вход на сайт будет запрещен и будет показываться страница FORBIDDEN. Другой вариант избавиться от нежелательных посетителей редиректить их куда подальше.

RewriteCond %{HTTP_REFERER} ^http://www.ПЛОХОЙ_ДОМЕН.(.*) [NC]
RewriteRule ^/$ http:///ВАШ_АДРЕС

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

PHP Запрет на доступ к сайту по IP

Чтобы запретить доступ к вашему сайту определенных пользователей по их IP адресу при помощи php, добавляем в самый верх index.php следующие строки:

<?php
if($_SERVER['REMOTE_ADDR'] == "xxx.xxx.xxx.xxx"){
echo "Спамерам Вход Запрещен!";
}
?>

Запрет на доступ определенных пользователей в htaccess

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

Order Allow,Deny
Allow from All
Deny from xxx.xxx.xxx.xxx

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

Order Allow,Deny
Allow from All
Deny from xxx.xxx.xxx.xxx, yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz

Можно так-же закрыть доступ для диапазона IP, для этого в htaccess нужно указать лишь первые цифры их IP адреса:

Order Allow,Deny
Allow from All
Deny from xxx.xxx.xxx

В выше приведенном примере забанены будут все IP начиная с xxx.xxx.xxx.1 и кончая xxx.xxx.xxx.255. Можно так-же перенаправлять нежелательных визитеров при помощи следующих строк:

SetEnvIf REMOTE_ADDR xxx.xxx.xxx.xxx REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ http:///ВАШ_АДРЕС

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

Читайте также: доступ защита спам php htaccess