7

我正在尝试阻止所有机器人/爬虫/蜘蛛获取特殊目录。我该怎么做htaccess?我搜索了一下,通过基于用户代理的阻塞找到了解决方案:

RewriteCond %{HTTP_USER_AGENT} googlebot

现在我需要更多的用户代理(对于所有已知的机器人),并且该规则应该只对我的单独目录有效。我已经有一个 robots.txt,但并不是所有的爬虫都会查看它......通过 IP 地址阻止不是一个选项。还是有其他解决方案?我知道密码保护,但我必须先询问这是否是一种选择。尽管如此,我还是在寻找基于用户代理的解决方案。

4

3 回答 3

18

您需要启用 mod_rewrite。将其放在该文件夹中的 .htaccess 中。如果放在其他地方(例如父文件夹),则需要稍微修改 RewriteRule 模式以包含该文件夹名称)。

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} (googlebot|bingbot|Baiduspider) [NC]
RewriteRule .* - [R=403,L]
  1. 我只输入了几个机器人——你自己添加任何其他的(字母大小写无关紧要)。
  2. 此规则将以“403 Access Forbidden”结果代码响应此类请求。如果您真的需要,您可以更改为另一个响应 HTTP 代码(考虑到您的要求,403 在这里最合适)。
于 2012-05-24T11:28:57.907 回答
10

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

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

这将阻止目录中的所有搜索机器人/subdir1//subdir2/并且/subdir3/

有关更多说明,请参见此处:http ://www.robotstxt.org/orig.html

于 2012-05-24T21:12:44.907 回答
6

我知道这个话题是“旧的”,但对于也登陆这里的人(就像我一样),你可以在这里查看很棒的 5g blacklist 2013
这是一个很大的帮助,不仅对 wordpress,而且对所有其他网站都是如此。工作真棒恕我直言。
另一个值得关注的可能是Linux 通过 .htaccess 审查反垃圾邮件

于 2013-11-01T07:50:54.527 回答