2011-01-09 11 views
9

Mam serwer apache, że dostanie około 100 razy na raz na 30 minut z wniosków dotyczących adresów URL pasujących do tego wzoru:Jak blokować żądania botów do adresów URL pasujących do typowego wzorca w Apache?

/neighborhood/****/feed 

Adresy te wykorzystywane mieć treści na nich i używane ważność. Teraz wszystkie są 404, więc ten bot zabija wydajność za każdym razem, kiedy trafi do nas.

Co dodać do mojego pliku htaccess, aby go zablokować?

Uwaga: bot jest na EC2, więc blokowanie przez adres IP nie będzie działać. Muszę blokować żądania pasujące do tego wzorca.

Odpowiedz

0

mod_rewrite? Ale wątpię, by mogło być szybciej na poziomie apache. Chciałbym rzucić okiem na nginx jako frontend, jest bardziej skuteczny zarówno w wersji 404, jak i wydajności reguł :-)

PS. Ponadto, można spróbować powrócić przekierowanie do 100MB plik gdzieś, aby zabawić tych botów :-D

+0

mod_rewrite jest jak to wygląda muszę korzystać. Nie wiesz, jak powinna wyglądać rzeczywista reguła przepisywania. – bflora2

+0

@bflora: 403 i 410 są łatwe ([F] i [G]), ale nie jestem pewien, czy istnieje szybki sposób na 404 w mod_rewrite. – ephemient

+0

[F] byłoby wspaniale. Jak powinna wyglądać reguła? Próbuję tego do tej pory bez powodzenia: RewriteRule^neighborhoods /([^/\.]+)/?$ http://www.windycitizen.com/ [F] – bflora2

10

Korzystanie z reguły mod_rewrite powinien dostać cię tam, gdzie chcesz być:

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

Powyższy przechodzi w pliku .htaccess lub jeśli wolisz, aby umieścić go w pliku vhost (bo masz wyłączony .htaccess parsowania do wykonania - to dobry pomysł):

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

Zważywszy URI z sąsiedztwa///Carson karmić należy oczekiwać odpowiedzi, takie jak:

Zakazane

nie masz uprawnień dostępu do /sąsiedztwa/Carson/feed na tym serwerze./Server

Apache 2.2.16 (Ubuntu) w ... Port 80

ten był testowany na moim lokalnym VM działa Apache/2.2.16 na Ubuntu 10.10.

+1

BTW, powoduje to kod statusu: 403 Zabronione –

1

Poniższy kod można wykorzystać do 404 w mod_rewrite:

RewriteRule pattern - [R=404] [other_flags] 
Powiązane problemy