如何禁止.htaccess和robots.txt中的机器人?

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

我尝试禁止 Amazonbot 访问我的网站,并尝试通过添加以下行来使用 robots.txt:

User-agent: Amazonbot
Disallow: /

几个小时后,我注意到这个机器人没有遵循 robots.txt,所以我使用 .htaccess 并添加了以下行:

# Block Harmful Robot
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_USER_AGENT} (Amazonbot) [NC]
    RewriteRule (.*) - [F,L]
</IfModule>
# END Block Harmful Robot

尽管如此,我还是在我的网站统计报告中看到了这个机器人。还有其他方法可以阻止这个机器人吗?

.htaccess robots.txt
1个回答
0
投票

对于遵循机器人排除协议 RFC 9309 的友好机器人,在 robots.txt 中阻止它们应该没问题。一旦被阻止,更改可能需要一些时间才能生效,因为网络爬虫通常会缓存 robots.txt 文件一段时间。机器人排除协议允许缓存长达 24 小时 (https://datatracker.ietf.org/doc/html/rfc9309#name-caching),如果不可读,甚至可以缓存更长时间。

另一种可能性是,观察到的机器人只是冒充亚马逊机器人,但实际上是一个不遵守机器人排除协议的机器人。您可以结合使用反向 DNS 和 DNS 查找来验证机器人,如 Amazonbot 页面中所述。

如果您将 Apache 2.4 与 mod_authz_host 一起使用,您可以将 User-Agent 指令与以下指令结合起来,以仅允许经过验证的 Amazonbot 并阻止仅伪装的机器人:

Require host crawl.amazonbot.amazon
© www.soinside.com 2019 - 2024. All rights reserved.