在日常维护工作中, 突然发现某客户网站的一个新的网页, 无法被Google搜索引擎抓取到,错误的结果是找不到该文件, 错误码是404. 对于这类错误,无论从客户的体验上,还是对网站的搜索引擎优化,都是不可忽视的问题,必须尽快解决.
该网站是基于Ubuntu Linux服务器,Nginx 服务器, 利用Laravel框架开发的,经过排查, 并没有发现网站程序自身有任何的错误日志输出,而且其他与该页面类似的网页都是可以正常显示的,因此我们把排查的重点从网站程序自身转移到数据库和Nginx服务器,最后发现一个让我们啼笑皆非的问题,就是Nginx服务器的配置文件中,处理静态文件的规则写的不严谨,它会把任何在网址中有 *js* 的请求,都默认为静态文件,而这个出错的页面中,恰好网址中间包含了’js'这个字符串,因此nginx服务器就去尝试寻找一个不存在的javascript脚本文件了。
优化了nginx配置文件之后,重启服务器,问题解决。