Блокировка по referer
Запрет доступа по HTTP заголовку referer через htaccess, позволяет блокировать нежелательный входящий трафик с определенных сайтов.
Запрет доступа
Посредством использования модуля mod_rewrite и файла .htaccess можно добиться запрета доступа к Вашим ресурсам. Если посетитель пришел с запрещенного сайта, то ему будет показана ошибка 403 – доступ запрещен.
Настройка запрета
Для этого требуются следующие директивы .htaccess:
RewriteEngine on
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} htaccess\.ru [NC]
RewriteRule .* – [F]
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} htaccess\.ru [NC]
RewriteRule .* – [F]
Или, если нужно перечислить больше одного сайта:
RewriteEngine on
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} htaccess\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} sitemap\.ru
RewriteRule .* – [F]
# Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error
RewriteCond %{HTTP_REFERER} htaccess\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} sitemap\.ru
RewriteRule .* – [F]
Если нужно запретить доступ напрямую со всех хостов, кроме определенных, набор правил будет выглядеть примерно так:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www.)?htaccess\.ru(/)?
RewriteCond %{HTTP_REFERER} !^http://(.*)\.htaccess\.ru(/)?
RewriteRule .*\.(gif|jpg|jpeg|png)$ – [F]
RewriteCond %{HTTP_REFERER} !^http://(www.)?htaccess\.ru(/)?
RewriteCond %{HTTP_REFERER} !^http://(.*)\.htaccess\.ru(/)?
RewriteRule .*\.(gif|jpg|jpeg|png)$ – [F]