我想知道这些规则之间的区别,哪个是最有效的阻止libwww-perl的文件.htaccess
SetEnvIfNoCase User-Agent "libwww-perl" bad_bot
Order Deny,Allow
Deny from env=bad_bot
或
RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* – [F,L]
谢谢!
答案 0 :(得分:0)
从功能上来说,我认为它们是相同的,有一些小的利弊。然而,前者可能更具可移植性,因为如果您在将来的某个时间移动网站,您将不必担心服务器上会安装mod_rewrite。
当然,如果您有其他mod_rewrite规则,这对您没有太大影响。
您还可以在mod_rewrite规则中设置通配符,该通配符在SetEnvIfNoCase中不存在。我知道这也可以做到这一点,这样做可能是明智的,因为你可以捕获不同的libwww版本。
我确定你知道libwww-perl可以发送任意用户代理字符串,所以两者都不会停止确定的。