问题现象

近期网站遇到一个很有趣的现象,外站的访问和搜索引擎的访问会全部显示404 Not Found 错误状态码。并且按F5刷新页面也依旧显示404 Not Found 错误状态码,但是直接将域名输入至浏览器URL地址栏访问则可以正常访问。有遇到类似问题的可参考本文解决。
排查思路
如上所述,因为返回的是404 Not Found 错误状态码,但是URL直接访问又可以正常访问,首先想到的是有那些原因会导致404 Not Found ,一个是网站服务器内确实不存在该文件或目录会返回404 Not Found 错误状态码,但是这个原因已经通过URL的正常访问结果排查再外了。剩下的就只有自己设置的防护规则,如软件防火墙、硬件防火墙、高防SCDN配置。那么剩下的就很简单了,在这些防护策略中寻找关键字眼404 即可。
解决方法
经测试,是因为防盗链中选择的防护规则太过于严格,在匹配文件类型中选择了所有 类型导致的。

正常的防盗链只需要选择文件后缀 或文件目录 ,将自己的图片资源、视频资源、css、js等相关资源目录或文件后缀作为匹配内容即可,这样即可起到防止站内资源被恶意盗用,也不会拦截外站所进来的流量,导致访客流失情况出现。
