помогите пожалуйста составить блок по бану реферера, с регуляркой в которой можно указать параметры встречаемые в url [A-Z0-9_-?=] а так же на любое рандомное содержание элемента в url забаненым отдавать ошибку 403
Для этого требуются следующие директивы .htaccess: PHP: RewriteEngine on # Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error RewriteCond %{HTTP_REFERER} htaccess\.ru [NC] RewriteRule .* – [F] Или, если нужно перечислить больше одного сайта: PHP: RewriteEngine on # Options +FollowSymlinks # – раскомментировать, если при установке этого .htaccess появляется ошибка 500, Internal Server Error RewriteCond %{HTTP_REFERER} htaccess\.ru [NC,OR] RewriteCond %{HTTP_REFERER} sitemap\.ru RewriteRule .* – [F] Если нужно запретить доступ напрямую со всех хостов, кроме определенных, набор правил будет выглядеть примерно так: PHP: RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(www.)?htaccess\.ru(/)? RewriteCond %{HTTP_REFERER} !^http://(.*)\.htaccess\.ru(/)? RewriteRule .*\.(gif|jpg|jpeg|png)$ – [F]
а как блокировать определённые url ? пробую заблокировать такой: http://sitename.ru/yandsearch?text=downloding&lr=213 вместо http://sitename.ru/ может быть любой адрес при этом sitename.ru блокировать не надо, только часть найденую в реферер http://любой адрес.ru/yandsearch?text=downloding&lr=213 жёлтым выделен запрос - он стабильный и одинаковый а красным - рандомный - он меняется часто по этим параметрам надо блокировать http://sitename.ru/ - не должен влиять, вместо него может любой адрес быть, только по маске найденой в реферер yandsearch?text=downloding&lr=213 в результате должно блокироваться http://sitename.ru/yandsearch?text=тут любое значение - блок - если вместо sitename вставить другой url то блокироваться тоже должен и такой вариант у меня ошибка 500 идёт, когда пытаюсь заблокировать для url указанного выше