用htaccess阻止所有僵尸/爬虫/蜘蛛的特殊目录

我试图阻止所有僵尸/爬虫/蜘蛛的特殊目录。 我怎样才能做到这一点与htaccess ? 我search了一下,发现了一个基于用户代理的解决scheme:

 RewriteCond %{HTTP_USER_AGENT} googlebot 

现在我需要更多的用户代理(对于所有已知的机器人),规则应该只对我单独的目录有效。 我已经有一个robots.txt,但并不是所有的抓取工具看看它…阻止IP地址是不是一个选项。 还是有其他解决scheme? 我知道密码保护,但我必须先问这是否是一个选项。 不过,我寻找一个基于用户代理的解决scheme。

你需要启用mod_rewrite。 放置在该文件夹中的.htaccess。 如果放置在别处(例如父文件夹),则需要稍微修改RewriteRule模式以包含该文件夹名称)。

 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC] RewriteRule .* - [R=403,L] 
  1. 我只input了几个机器人 – 你自己添加任何其他的(字母大小写无关紧要)。
  2. 这个规则将以“403访问被禁止”的结果代码来响应这样的请求。 如果您真的想要,可以更改为其他响应HTTP代码(403在这里考虑您的要求是最合适的)。

为什么使用.htaccess或mod_rewrite作为专门用于robots.txt的作业? 这是robots.txt片段,您将需要阻止一组特定的目录。

 User-agent: * Disallow: /subdir1/ Disallow: /subdir2/ Disallow: /subdir3/ 

这将阻止目录/subdir1//subdir2//subdir3/所有search机器人。

更多的解释请看这里: http : //www.robotstxt.org/orig.html

我知道这个话题是“古老的”,但是对于那些在这里降落的人来说(你也可以这样做),你可以看看这里的5g黑名单 。
这是一个伟大的帮助,没有不仅为wordpress,而且所有其他网站。 作品真棒imho。
另一个值得关注的可能是Linux评论通过.htaccess反垃圾邮件