我尝试禁止 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
尽管如此,我还是在我的网站统计报告中看到了这个机器人。还有其他方法可以阻止这个机器人吗?
对于遵循机器人排除协议 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