网站迁移后常见问题排查:图片不显示、链接404

网站迁移后常见问题排查:图片不显示、链接404

网站搬完家了,首页能打开。你觉得一切顺利。然后用户开始反馈:图片全裂了,有些页面打不开,搜索功能不好使了。你登录后台,发现编辑器里图片路径还是旧的。

你以为搬家就是复制粘贴。结果搬家之后的问题比搬家本身还多。

今天把网站迁移后最常见的三个问题整理出来,附上排查方法。

问题一:图片不显示

图片不显示通常是路径问题。新服务器的目录结构和旧服务器不一样,图片的绝对路径失效了。

排查方向

检查图片URL:打开浏览器开发者工具(F12)→ Network标签,刷新页面,查看图片请求的完整URL。如果URL里包含旧域名,说明数据库里还存着旧的绝对路径。如果URL里是相对路径但404了,检查文件目录结构是否一致。

检查文件是否真的存在

bash

ls -la /var/www/html/wp-content/uploads/2026/07/

文件存在但打不开,检查文件权限:

bash

chmod -R 644 /var/www/html/wp-content/uploads/
chown -R www-data:www-data /var/www/html/wp-content/uploads/

修复方法

WordPress站点:用WP CLI批量替换数据库中的旧URL,检查wp_options表中的siteurlhome选项:

bash

wp search-replace 'http://旧域名' 'https://新域名'

非WordPress站点:确认uploadsimages等目录是否完整同步,检查配置文件中的资源路径变量是否已更新。如果使用了自定义字段,用SQL批量替换:

sql

UPDATE posts SET content = REPLACE(content, 'http://旧域名', 'https://新域名');

问题二:链接404

页面能打开,但点击内链跳转到404。通常是伪静态规则没生效,或者URL结构变了。

排查方向

检查伪静态规则

  • Apache:确认.htaccess文件已迁移到新服务器,且mod_rewrite已启用
  • Nginx:确认try_filesrewrite规则已正确配置

检查URL结构是否一致:新服务器是否保留了原来的URL格式?如果用了不同程序或不同路由规则,内链可能指向不存在的路径。

修复方法

WordPress:在后台“设置”→“固定链接”里重新保存一次,WordPress会刷新并重建重写规则。如果还是不行,检查/etc/nginx/sites-available/.htaccess的配置。

非WordPress:确认路由规则与旧服务器完全一致。如果无法保持一致,设置301重定向:

nginx

rewrite ^/old-path/(.*)$ /new-path/$1 permanent;

问题三:数据库连接失败

网站报错“Error establishing a database connection”,通常是因为数据库配置没有跟着搬家一起更新。

排查方向

检查数据库配置文件:WordPress的wp-config.php、Laravel的.env、其他程序的config/database.php,确认数据库地址、用户名、密码、数据库名是否正确。

检查数据库服务是否运行

bash

systemctl status mysql

检查数据库用户权限:新服务器的数据库用户是否有权访问对应数据库:

sql

SHOW GRANTS FOR '用户名'@'localhost';

一个真实案例

一个WordPress站点迁移到新服务器后,文章中的图片全部404。检查发现数据库里的图片URL仍然指向旧域名的绝对路径。使用wp search-replace批量替换旧域名为新域名后,图片恢复正常。

最后一句

迁移后的故障大多集中在这三个方向:图片路径不对(绝对路径vs相对路径)、伪静态规则失效(.htaccess未同步)、数据库配置未更新(wp-config.php里的数据库信息)。排查时按这三个顺序走,绝大部分问题都能在30分钟内定位。搬家不是终点,验证才是。把网站从头到尾点一遍,你才能确认真的搬完了。

知识库

Linux文件压缩与归档:tar、gzip、zip实战对比

2026-7-10 15:06:00

知识库

量子计算服务器:技术现状与未来展望

2024-11-25 18:05:25

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧