2011-09-10 90 views
24

一個陌生人機器人(GbPlugin)正在編碼的圖像的url並導致錯誤404.
我試圖阻止機器人沒有成功與此在我的.htaccess的底部,但它didn沒有工作。由useragent或空referer阻止

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/ 
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_USER_AGENT} ^$ [OR] 
RewriteCond %{HTTP_USER_AGENT} ^GbPlugin [NC] 
RewriteRule .* - [F,L]  

下面的日誌。

201.26.16.9 - - [10/Sep/2011:00:06:05 -0300] "GET /wp%2Dcontent/themes/my_theme%2Dpremium/scripts/timthumb.php%3Fsrc%3Dhttp%3A%2F%2Fwww.example.com%2Fwp%2Dcontent%2Fuploads%2F2011%2F08%2Fmy_image_name.jpg%26w%3D100%26h%3D65%26zc%3D1%26q%3D100 HTTP/1.1" 404 1047 "-" "GbPlugin" 

對不起,我的語言錯誤

+0

「導致errir 404」:對他們?但你爲什麼要關心? – Raedwald

回答

23

這裏是你放什麼在你的.htacces文件

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/ 
SetEnvIfNoCase Referer "^$" bad_user 
SetEnvIfNoCase User-Agent "^GbPlugin" bad_user 
SetEnvIfNoCase User-Agent "^Wget" bad_user 
SetEnvIfNoCase User-Agent "^EmailSiphon" bad_user 
SetEnvIfNoCase User-Agent "^EmailWolf" bad_user 
SetEnvIfNoCase User-Agent "^libwww-perl" bad_user 
Deny from env=bad_user 

這將返回:

HTTP request sent, awaiting response... 403 Forbidden 
2011-09-10 11:15:48 ERROR 403: Forbidden. 
+0

好的,謝謝。 立即上傳。 我會通知結果。 Vera – Vera

+7

一個簡單易用的測試就是使用wget。這就是我回到我的網站時所說的回報。 –

+0

此行通過Facebbok外部命中:'5092「 - 」「facebookexternalhit/1.0(+ http://www.facebook.com/externalhit_uatext.php)」'訪問塊,useragent爲空。我刪除了這一行並再次測試 – Vera

2

我可以推薦這個方法:

把這個是.htaccess放到你網站的根目錄下。

ErrorDocument 503 "Your connection was refused" 
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC] 
RewriteRule .* - [R=503,L] 

^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ 

是兩個useragents我想在這個例子的情況下阻止。

您可以使用正則表達式等等之類

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0 

一個用戶代理可能是

Mozilla.*Firefox\/40.0 

^指從開始的比賽和$到最後,所以你可以阻止只是一個用戶代理有:

ErrorDocument 503 "Your connection was refused" 
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*Firefox\/40.0$ [NC] 
RewriteRule .* - [R=503,L] 

或者使用|字符來將它們分開(和)在第一個例子中。

RewriteCond %{HTTP_USER_AGENT} ^(Mozilla.*537.36|Mozilla.*UCBrowser\/9.3.1.344)$ [NC] 

您可以通過在代碼中放入useragent然後嘗試訪問該網站來測試它。 http://whatsmyuseragent.com/

0

要阻止空參照網址,你可以使用以下規則:

RewriteEngine on 

RewriteCond %{HTTP_REFERER} ^$ 
RewriteRule^- [F,L] 

這將禁止你的網站的所有請求,如果HTTP_REFERER值爲空^$

要阻止用戶代理,你可以使用

RewriteEngine on 

RewriteCond %{HTTP_USER_AGENT} opera|firebox|foo|bar [NC] 
RewriteRule^- [F,L] 

這將禁止你的網站的所有請求,如果HTTP_USER_AGENT條件模式相匹配。

相關問題