Запрет доступа к сайту с домена или с IP
Существует несколько способов запретить доступ к сайту с определенного домена или с определенного IP.
Это может пригодится если вас одолели спамеры, или в случае если кто-либо злонамеренно пытается закликивать рекламу Adsense и добиться тем самым бана аккаунта или если с определенного сайта на ваш переходят по ссылке нежелательные посетители или запускаются какие-либо вредоносные скрипты или программы сканирующие сайт и нарушающие его работу.
Как запретить доступ к сайту? Как закрыть доступ к сайту с определенного домена? Запрет доступа на PHP
Чтобы запретить доступ на сайт для посетителей переходящих по ссылкам с определенного домена с помощью PHP нужно открыть файл index.php (должен находиться в коренной директории сайта) и вставить в самое его начало следующую строку:
if(strpos($_SERVER["HTTP_REFERER"],"ПЛОХОЙ_ДОМЕН.com")!==FALSE){print"Вы перешли с ПЛОХОЙ_ДОМЕН.com - для вас сайт закрыт!";exit();
}
?>
Выше приведенный php-код предотвратит доступ к сайту всем, у кого в поле referer будет указан домен, на который вы накладываете запрет и выведет этим посетителям пустую страницу с указанной в коде надписью. А следующий php-код запретит доступ с определенного домена и перенаправит посетителей на указанный вами адрес (URL):
<?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 следующие строки:
<?if($_SERVER["REMOTE_ADDR"]=="xxx.xxx.xxx.xxx"){echo"Спамерам вход запрещен!";exit();
}
?>
Запрет на доступ определенных пользователей в .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:///ВАШ_АДРЕС