Apache下用.htaccess文件屏蔽指定浏览器的方法
对于消停了没几天就卷土重来的垃圾访问,黑名单已经渐渐无效。
因为ip实在是来自太多国家,而且基本不会出现ip重复的情况。
BrowserMatchNoCase "Firefox/3.0." bad_bot
#或者SetEnvIfNoCase User-Agent "Firefox/3.0." bad_bot
Order Deny,Allow
Deny from env=bad_bot
以上代码可以直接屏蔽掉Firefox/3.0.x- -
实在想不出什么好办法屏蔽垃圾访问,只能针对浏览器。
目前发现垃圾访问主要来自于IE6、Opera/8.01、Firefox/3.0.10、Firefox/3.0.5、Firefox/3.0.6
决心直接屏蔽这些浏览器……IE6可能会特殊处理。目前还是再看看情况……
但是!有时候!BrowserMatchNoCase 并不好用!!
我咨询了hawkhost的客服,客服提供了一种很不错的解决方案,使用Rewrite Rule
以下为我的解决代码,主要针对Opera 8.01与Firefox/3.0.x以及IE6.0
注意空格要写成\s,这是实践的结果
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "Firefox/3." [OR]
RewriteCond %{HTTP_USER_AGENT} "MSIE\s6.0" [OR]
RewriteCond %{HTTP_USER_AGENT} "Opera\s8.01"
RewriteRule ^.* - [F,L]
#到这里为止为垃圾浏览器屏蔽,直接指向403错误
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
#这些是本来wordpress生成的代码
顺便,今天听到一句很爽的话:
Hello Jiang, You are most Welcome, Do not hesitate to contact us for any assistance in future.