最近客户反应一个网站新发布的文章中图片不显示,第一反应是图片路径错误,经过检查图片是存在的、路径也是正确的。而且谷歌浏览器是可以正常显示的,但是360浏览器极速模式就不显示图片。

继续排查,发现图片名称都是中文的,而这个网站是基于 wordpress 创建的,经过百度发现 wordpress 确实存在中文名称图片可能404的问题。

通过 wordpress 已上传的图片批量重命名 中介绍的方法,将网站中所有中文名称的图片批量替换成了英文名称,满心欢喜觉得问题应该解决了,结果一刷新,360浏览器仍然不显示图片,直接通过 url 访问图片也是报 404 错误。

到这里就排除了中文名称的问题,因此觉得很大可能是哪块配置的防盗链出错了。

接下来分别关闭了云锁的防盗链功能和 wordpress 后台的防盗链插件,然而问题仍然没有解决,突然想到了宝塔面板也有防盗链设置,去看了一眼,果然发现了问题。

在宝塔防盗链功能设置中,没有勾选“允许空HTTP_REFERER请求”。根据下面的说明可知,不勾选该项设置,那么就表示不允许通过浏览器输入图片 url 的方式直接访问图片。勾选该选项后,再次通过 url 访问图片正常显示,360浏览器浏览网站文章,也可以正常显示文章内的所有图片了。

至于为什么一直谷歌浏览器访问正常,而360浏览器即便是通过文章访问而不是通过浏览器直接访问仍然提示 404,就不知道了。