Запрет IP-адресов через мой htaccess не работает. Зачем?

История невероятно длинная. Короче говоря, кто-то использует IP-адреса amazonaws для бота, который нажимает на мои объявления AdSense. Я пытаюсь запретить все IP-адреса amazonaws, но это не сработает. Большая проблема заключается в том, что я не могу запретить любой ip.

Я пробовал это:

RewriteEngine On
RewriteBase /
RewriteCond% {HTTP_REFERER} ^ http: //.*amazonaws \ .com [OR]
RewriteCond% {REMOTE_HOST} ^. * \. Compute-1 \ .amazonaws \ .com $ [NC, OR]
RewriteCond% {REMOTE_ADDR} ^ xx.xx.xxx.xxx [OR]
RewriteRule ^ (. *) $ - [F]

xx.xx.xxx.xxx - это IP-адрес, к которому у меня есть доступ, и с которым я могу проверить, работает ли htaccess. В противном случае я пытался запретить себе, чтобы увидеть, работает ли это. Не имеет.

Я также пробовал классический код:

# BAN USER BY IP

 разрешить заказ, отрицать
 разрешить всем
 отказаться от 1.2.3.4

Не работает.

Что я делаю неправильно и почему я не могу запретить какой-либо ip, не говоря уже об амазоносных?

1 голос | спросил Punct Ulica 9 MarpmSun, 09 Mar 2014 22:53:24 +04002014-03-09T22:53:24+04:0010 2014, 22:53:24

1 ответ


2

Проверьте ваш /etc/apache2/apache2.conf или /etc/apache2/httpd.conf, или, если у вас мультихостинг, /etc/apache2/sites-available/mydomain.com.conf на наличие AllowOverride Все.

Затем попробуйте это так:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^.*amazonaws\.com$ [NC,OR] 
RewriteCond %{REMOTE_HOST} ^.*compute-1\.amazonaws\.com$ [NC,OR] 
RewriteCond %{REMOTE_ADDR} ^12.148.196.(12[8-9]|1[3-9][0-9]|2[0-4][0-9]|25[0-5])$ [OR]
RewriteRule .* - [F,L]

Это примеры, созданные из моего собственного файла .htaccess. Диапазон IP-адресов в этом примере - это диапазон IP-адресов amazonaws.com, но он может не совпадать с диапазоном IP-адресов, который вам нужен. Вы заметили, что я удалил RewriteBase. В этом нет необходимости, если вам это не нужно по другой причине.

Вы также можете разбить их на отдельные наборы правил /правил, чтобы упростить задачу. Если при использовании [ИЛИ] есть хотя бы одна ошибка, весь набор завершается ошибкой. Если вы разделитесь на три отдельных набора, то единственный, который потерпит неудачу, - потерпит неудачу.

ответил closetnoc 9 MarpmSun, 09 Mar 2014 23:23:25 +04002014-03-09T23:23:25+04:0011 2014, 23:23:25

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132