WordPress 搬家的两种情况:换主机与换域名
发布时间:2025-11-18 16:18       
更新时间:2025-11-19 11:22
WordPress 搬家分两种:只换主机,域名不变;连域名一起换。第二种麻烦在数据库里的旧地址不能直接替换,处理不对会出现排版错乱和图片批量丢失。分开说。
共同第一步:完整备份
文件和数据库各一份。文件打包:tar czf wp-files.tar.gz /var/www/wordpress;数据库导出:mysqldump -u用户名 -p 数据库名 > wp-db.sql,数据量大就压缩导出:mysqldump -u用户名 -p 数据库名 | gzip > wp-db.sql.gz。备份在新服务器和本地各存一份,搬家出问题时才有退路。
情况一:只换主机
新主机装好环境,PHP 版本尽量不低于旧机,否则老主题插件可能不兼容。然后导入数据库、解包文件、修改 wp-config.php 里的数据库连接信息,把域名解析切到新 IP。切换前先在本机 hosts 里把域名指向新 IP,全站点一遍确认正常,再把 TTL 提前调小、正式切解析,用户基本无感。文件权限保持 644 与 755 的惯例,别图省事全开 777。
情况二:连域名一起换
难点在于 WordPress 把网址存在序列化字段里,序列化数据自带字符串长度标记,直接用 SQL 的 REPLACE 替换会让长度对不上,页面设置和侧边栏挂件可能整体错乱。正确做法是用能识别序列化格式的搜索替换工具。命令行装 WordPress 官方工具 wp-cli 后,一条命令完成:
wp search-replace 'https://旧域名' 'https://新域名' --all-tables
图形界面的搜索替换插件原理相同,任选其一。替换后重点检查三处:首页、文章内链、媒体库图片。
旧域名收尾
旧站点保留一段时间做 301(永久重定向)跳转,Nginx 配置加一行 return 301 https://新域名$request_uri; 搜索引擎会把收录逐步转移过来,过渡期至少留一个月,老域名别急着注销。跳转生效与否用 curl -I 验证,返回码是 301 才算对。
搬家当天才动解析,其余验证全部提前在新环境完成——用户无感的搬家都是这么干出来的。旧环境保留一周再销毁,出问题还来得及回退。