2011-01-09 26 views
9

我已經得到了,在得到與符合此格式的URL的請求每隔30分鐘打100倍左右的Apache服務器:如何阻止殭屍程序請求到符合Apache常見模式的URL?

/neighborhood/****/feed 

用於對他們的內容,並使用有效這些URL。現在他們都是404,所以這個機器人每次擊中我們時都會造成性能下降。

什麼我添加到我的htaccess文件來阻止它?

注意:bot在EC2上,因此按IP地址阻止將無法工作。我需要阻止符合該模式的請求。

回答

0

mod_rewrite?但我懷疑它可以在apache級別上更快。 我會看看nginx作爲前端,它在404和規則性能方面效率更高:-)

PS。此外,您可以嘗試返回一個重定向到100MB的文件的地方,使這些機器人的一些有趣:-D

+0

mod_rewrite的是什麼樣子的,我需要使用。不知道實際的重寫規則應該是什麼樣子。 – bflora2

+0

@bflora:403和410很容易([F]和[G]),但我不確定在mod_rewrite中是否有快速訪問404的方法。 – ephemient

+0

[F]會很棒。規則應該是什麼樣子?我嘗試這個目前爲止沒有成功:RewriteRule^neighborhoods /([^/\.]+)/?$ http://www.windycitizen.com/ [F] – bflora2

10

使用的mod_rewrite規則應該讓你的地方,你想:

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

以上進入你的.htaccess文件,或者如果你更願意把它放在你的虛擬主機文件中(因爲你已經關閉的.htaccess解析性能 - 一個好主意):

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

鑑於/居委會/卡森/的URI喂,你應該期望,如響應:

故宮

您沒有權限訪問此服務器上 /居委會/卡森/飼料。

的Apache/2.2.16(Ubuntu的)服務器在 ... 80端口

這是在我的本地虛擬機測試運行在Ubuntu 10.10的Apache/2.2.16。

+1

順便說一句,這導致了一個狀態代碼:403 Forbidden –

1

下面的代碼可以在mod_rewrite的可用於404:

RewriteRule pattern - [R=404] [other_flags]