如何用.htaccess和robots.txt禁止爬虫?仍无法拦截Amazonbot
拦截Amazonbot的其他可行方法
先确认下当前的.htaccess规则是否真的没生效——可以检查服务器日志里的请求状态码,如果是403 Forbidden,说明拦截已经生效,只是统计工具会记录被拒绝的访问请求。如果日志里还是200状态,那试试下面的方法:
用SetEnvIf直接拦截UA
相比Rewrite规则,这种方式更简洁直接,在.htaccess中添加:SetEnvIfNoCase User-Agent "Amazonbot" bad_robot Order Allow,Deny Allow from all Deny from env=bad_robot结合IP范围拦截
Amazonbot的IP来自AWS的特定IP段,你可以找到官方公布的Amazonbot IP范围,然后在.htaccess中直接拒绝这些IP段:# 示例IP段,替换为实际的Amazonbot IP范围 Deny from 18.0.0.0/8 Deny from 3.0.0.0/8这种方式能避免爬虫伪造User-Agent绕过拦截。
启用mod_security规则拦截
如果你的服务器开启了mod_security模块,可以添加针对性规则:SecRule REQUEST_HEADERS:User-Agent "@contains Amazonbot" "id:1001,phase:1,deny,status:403,msg:'Block Amazonbot'"这个规则会在请求初期就拦截匹配UA的请求。
检查服务器配置是否允许.htaccess生效
确保你的Apache配置中,当前网站的Directory段设置了AllowOverride All,否则.htaccess里的规则不会被执行。
内容的提问来源于stack exchange,提问作者Sallar Rabiei
相关产品推荐
相关产品推荐

