Как заблокировать запросы ботов на URL, которые соответствуют общему шаблону в Apache? - PullRequest
11 голосов
/ 09 января 2011

У меня есть сервер apache, который получает 100 раз за каждые 30 минут с запросами на URL, которые соответствуют этому шаблону:

/neighborhood/****/feed

Эти URL содержали контент и были действительными. Теперь они все 404, так что этот бот убивает производительность каждый раз, когда поражает нас.

Что мне добавить в файл htaccess, чтобы заблокировать его?

Примечание: бот находится на EC2, поэтому блокировка по IP-адресу не будет работать. Мне нужно заблокировать запросы, соответствующие этому шаблону.

Ответы [ 4 ]

13 голосов
/ 09 января 2011

Использование правила mod_rewrite должно привести вас туда, где вы хотите быть:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/neighborhood/[^/]+/feed$ [NC]
RewriteRule ^.*$ - [F,L]

Вышеприведенное относится к вашему файлу .htaccess или если вы предпочитаете поместить его в файл vhost (потому чтоотключил анализ .htaccess для повышения производительности - хорошая идея):

<Location />
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/neighborhood/[^/]+/feed$ [NC]
RewriteRule ^.*$ - [F,L]
</Location>

Учитывая URI / соседства / carson / feed, вы должны ожидать ответ, такой как:

Запрещено

У вас нет прав доступа к / окрестности / carson / feed на этом сервере.

Сервер Apache / 2.2.16 (Ubuntu) на ... Порт 80

Это было проверено на моей локальной виртуальной машине под управлением Apache / 2.2.16 в Ubuntu 10.10.

1 голос
/ 09 августа 2012

Следующий код можно использовать для 404 в mod_rewrite:

RewriteRule pattern -  [R=404] [other_flags]
1 голос
/ 09 января 2011

Поставьте систему кэширования или CDN перед Apache, и позволит кэшировать ваши 404 ответа.


403 можно легко установить с помощью mod_rewrite :

RewriteRule ^neighborhood/[^/]+/feed$ - [F]
0 голосов
/ 09 января 2011

mod_rewrite? Но я сомневаюсь, что это может быть сделано быстрее на уровне Apache. Я бы посмотрел на nginx как на фронтэнд, он более эффективен как на 404, так и на правилах: -)

PS. Кроме того, вы можете попытаться вернуть редирект в файл размером 100 МБ, чтобы высмеять этих ботов: -D

...