使用htaccess阻止所有机器人/爬虫/蜘蛛获取特殊目录

时间:2012-05-24 10:34:18

标签: .htaccess seo search-engine

我正在尝试阻止所有机器人/爬虫/蜘蛛的特殊目录。我怎么能用htaccess做到这一点?我搜索了一下,根据用户代理阻止了一个解决方案:

RewriteCond %{HTTP_USER_AGENT} googlebot

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

3 个答案:

答案 0 :(得分: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最适合考虑您的要求)。

答案 1 :(得分: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

答案 2 :(得分:5)

我知道主题是“老”但仍然,对于那些降落在这里的人(我也这样做过), 你可以看看great 5g blacklist 2013 这是一个很好的帮助,不仅适用于wordpress,也适用于所有其他网站。工作真棒imho。
另一个值得关注的问题可能是Linux reviews anti spam through .htaccess