使用 htaccess 阻止特定目录的所有机器人/爬虫/蜘蛛

问题描述 投票:0回答:3

我正在尝试阻止特定目录的所有机器人/爬虫/蜘蛛。我怎样才能用

htaccess
做到这一点?我搜索了一下,找到了基于用户代理阻塞的解决方案:

RewriteCond %{HTTP_USER_AGENT} googlebot

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

.htaccess seo search-engine
3个回答
20
投票

您需要启用 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 在这里最合适)。

11
投票

为什么要使用 .htaccess 或 mod_rewrite 来完成专门用于

robots.txt
的作业?这是您需要阻止一组特定目录的 robots.txt 片段。

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

这将阻止目录

/subdir1/
/subdir2/
/subdir3/
中的所有搜索机器人。

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


6
投票

我知道这个话题很“老”,但对于也来到这里的人来说(就像我也一样), 你可以看这里很棒的5G黑名单2013
这不仅对 wordpress 而且对所有其他网站都有很大的帮助和帮助。恕我直言,效果棒极了。
另一个值得关注的可能是 Linux 通过 .htaccess 评论反垃圾邮件最后一个功能存档链接)。

© www.soinside.com 2019 - 2024. All rights reserved.