测试Universal Link时遭遇“File is blocked by robots”报错的解决方法
看起来你的robots.txt配置是完全开放的(User-agent: * Disallow:),但苹果的工具还是抛出了robots拦截的错误,这确实有点让人困惑。我整理了几个常见的排查和解决方向,你可以逐一试试:
确认robots.txt的实际返回内容
有时候本地配置和服务器实际对外返回的内容可能不一致。直接在浏览器访问https://你的域名/robots.txt,检查返回的内容是否和你配置的完全一致——比如有没有拼写错误、多余的空格,或者服务器缓存了旧的版本?
另外,苹果的爬虫(Applebot)可能有特殊的请求头,你可以用curl模拟它的请求来验证:curl -A "Applebot/0.1" https://你的域名/robots.txt确保返回的是你设置的开放规则。
排查服务器或CDN的拦截规则
除了robots.txt,服务器的WAF、防火墙、.htaccess配置,或者CDN的爬虫保护规则,都可能误拦截Applebot的请求。去服务器的访问日志里看看,Applebot的请求是不是被返回了403、404这类错误状态码。
如果用了CDN服务,检查一下后台的"爬虫保护"或"安全规则",确认Applebot没有被加入拦截列表,必要时可以手动把Applebot添加到允许名单。检查
apple-app-site-association文件的访问权限
苹果的验证工具需要访问你的apple-app-site-association文件,即使robots.txt是开放的,这个文件所在的路径也可能被单独限制。用curl模拟Applebot请求这个文件:curl -A "Applebot/0.1" https://你的域名/apple-app-site-association确保能正常获取到内容,返回状态码是200。如果返回错误,检查服务器对这个文件的权限设置,或者是否有重定向规则导致无法访问。
验证DNS和SSL配置
DNS解析异常、SSL证书过期或配置错误,也可能导致Applebot无法正常访问你的文件,进而被判定为robots拦截。确认你的域名解析正常,SSL证书是有效的,且能被Applebot正常识别。等待缓存刷新
苹果的验证工具可能会缓存之前的检测结果,如果你刚修改完robots.txt或相关配置,不妨等1-2小时,或者换个网络环境再重新测试。
内容的提问来源于stack exchange,提问作者housecat7

