WordPress迁移后部分图片文件返回404错误求助
刚迁移完主机遇到图片404确实挺闹心的,我帮你梳理几个最常见的排查方向,一个个试下来应该能解决:
检查文件名大小写一致性
很多Linux主机(包括GoDaddy的cPanel)是严格区分文件名大小写的,但有些主机(比如HostGator)可能没那么严格。你说图片是ASSEMBLY2.jpg,先看看页面里引用这个图片的代码里,文件名是全大写还是小写?比如如果页面里写的是assembly2.jpg,那GoDaddy的服务器就找不到文件了。可以右键图片选「检查」,查看控制台里的图片URL,对比实际文件名的大小写是否完全一致。重新保存WordPress固定链接设置
迁移主机后,WordPress的重写规则可能没同步到新主机的服务器配置里。登录你的WP后台,进入「设置」→「固定链接」,不用改任何设置,直接点击「保存更改」就行。这会自动刷新服务器的.htaccess文件,修复可能的URL路由问题。验证文件和文件夹权限
虽然你能通过FileZilla看到文件,但权限不对也会导致浏览器访问404。正确的权限设置一般是:- 图片文件(比如
ASSEMBLY2.jpg)权限设为644 - 存放图片的文件夹(比如
2015/03/)权限设为755
你可以在FileZilla里右键文件/文件夹,选「文件权限」来修改,改文件夹时记得勾选“递归应用到所有子文件/文件夹”。
- 图片文件(比如
检查WordPress站点URL设置
有时候迁移后,WP后台的站点URL和实际域名路径不匹配。进入WP后台「设置」→「常规」,确认「WordPress地址(URL)」和「站点地址(URL)」都是https://www.xyz.com(如果启用了HTTPS),没有多余的路径或者错误的域名。清理缓存
包括浏览器缓存(按Ctrl+F5强制刷新页面)、WordPress安装的缓存插件(比如WP Rocket、W3 Total Cache)的缓存,还有GoDaddy主机自带的服务器缓存(可以在cPanel里找“缓存”相关工具清理)。旧缓存可能还保留着迁移前的图片路径,导致访问错误。
如果以上方法都试了还是不行,要是主机支持WP CLI的话,可以试试用命令刷新媒体库:wp media regenerate --skip-delete,这个命令会重新生成媒体库的图片路径记录,不过需要你能访问主机的SSH或者有WP CLI权限。
内容的提问来源于stack exchange,提问作者Bikram Pahi

