WordPress更换域名教程,数据库批量替换地址:Word
WordPress更换域名时,最核心的一步是批量替换数据库中所有旧域名链接。
如果只改后台地址而没替换文章、页面、选项里的旧链接,前台会出现图片裂图、链接跳转错误。
下面按零基础也能照做的顺序,讲清楚从备份到验证的完整流程。
动手前先做两件事:备份文件和数据库
更换域名属于不可逆操作,务必先备份。
- 备份网站文件:用宝塔面板或命令行打包
/www/wwwroot/你的站点目录。 - 备份数据库:在宝塔面板“数据库”页面点击“备份”,或执行命令:
mysqldump -u 数据库用户名 -p 数据库名 > /root/backup.sql
输入密码后,如果当前目录生成 backup.sql 且大小正常,说明备份成功。
用SQL语句批量替换旧域名为新域名
登录phpMyAdmin或使用命令行进入数据库。
推荐先执行查询,确认旧域名出现的位置:
SELECT * FROM wp_options WHERE option_value LIKE '%旧域名%';
确认无误后,执行替换。
将 旧域名.com 和 新域名.com 替换成你自己的地址:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://旧域名.com', 'http://新域名.com');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://旧域名.com', 'http://新域名.com');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://旧域名.com', 'http://新域名.com');
如果WordPress安装在子目录,记得把路径也带上,例如 http://旧域名.com/blog。
注意: 表前缀不一定是 wp_,请以你数据库实际前缀为准。
执行完每条语句后,查看“受影响行数”,不为0说明有替换发生。
修改wp-config.php中的站点地址
数据库替换后,还需要确保WordPress知道新域名。
打开网站根目录下的 wp-config.php,在 /* That's all, stop editing! 之前添加:
*/
define('WP_HOME', 'http://新域名.com');
define('WP_SITEURL', 'http://新域名.com');
如果之前设置过旧域名,直接修改这两行即可。
保存后,后台地址会自动指向新域名。
检查固定链接和插件残留
部分插件会把域名写进自己的配置表,比如缓存插件、SEO插件。
进入WordPress后台,依次检查:
- 设置 → 常规:确认WordPress地址和站点地址已是新域名。
- 设置 → 固定链接:不需要修改,直接点击“保存更改”刷新规则。
- 缓存插件:清空全部缓存。
- 页面构建器(如Elementor):重新保存一次页面,让CSS/JS路径更新。
如果前台仍有旧域名,用浏览器开发者工具查看加载失败的资源URL,再针对性替换。
验证替换是否彻底
访问新域名首页,按以下顺序检查:
- 页面能否正常打开,样式是否错乱。
- 文章内图片是否显示,右键复制图片地址看是否为新域名。
- 点击菜单和文章链接,看是否跳回旧域名。
- 登录后台,发布一篇测试文章,确认保存正常。
若发现个别链接仍是旧域名,可再次执行上面的SQL替换,或手动在数据库里搜索。
避坑提醒
- 不要直接改数据库里的siteurl和home,除非你清楚后果,用wp-config.php定义更安全。
- 替换时区分http和https,如果新域名启用了SSL,应替换为
https://新域名.com。 - 序列化数据问题:直接REPLACE可能破坏序列化字符串的长度声明,导致小工具、主题选项丢失。如果替换后出现异常,可用
Search Replace DB等工具重新处理。 - 操作前必须备份,一旦替换错误可快速回滚。
常见疑问
更换域名后后台进不去怎么办?
检查wp-config.php中的WP_HOME和WP_SITEURL是否写错,或直接删除这两行,用数据库工具修改wp_options表中的siteurl和home。
数据库替换后前台还是旧域名?
可能是浏览器缓存或插件缓存,先强制刷新(Ctrl+F5),再清空WordPress缓存插件和服务器缓存。
可以只替换文章内容,不替换options表吗?
不建议。options表里存着站点地址、小工具、主题设置等,遗漏会导致部分功能异常。
完成以上步骤后,WordPress更换域名和数据库批量替换地址的工作就基本结束。
如果迁移后遇到404或样式丢失,优先回看固定链接和序列化数据这两处。