
wordpress 迁移后访问新域名仍跳转至旧域名,根本原因是数据库中大量硬编码的旧 url 未更新;需批量替换站点地址、主页地址及内容中的绝对链接,而非仅恢复备份。
wordpress 迁移后访问新域名仍跳转至旧域名,根本原因是数据库中大量硬编码的旧 url 未更新;需批量替换站点地址、主页地址及内容中的绝对链接,而非仅恢复备份。
将 WordPress 网站迁移到新域名时,仅用 UpdraftPlus 恢复备份是不充分的——它能还原文件和数据库,但不会自动修改数据库中存储的旧域名(如 siteurl、home 设置,以及文章、页面、菜单、自定义字段中嵌入的绝对 URL)。因此,用户访问新域名时,WordPress 仍会从数据库读取旧 siteurl 并发起 301/302 重定向,或前端资源(CSS、图片、链接)加载失败,导致功能异常。
✅ 正确迁移的关键步骤如下:
-
更新 WordPress 核心地址设置
在新站点的 wp-config.php 文件顶部添加以下两行(优先级高于数据库,临时生效):define('WP_HOME', 'https://newdomain.com'); define('WP_SITEURL', 'https://newdomain.com');✅ 作用:覆盖数据库中的 home 和 siteurl 值,立即阻止后台重定向。
-
批量替换数据库中的旧 URL
使用安全可靠的搜索替换工具(切勿直接 SQL 替换!),推荐:- Better Search Replace(插件,支持干运行预览)
-
WP-CLI 命令(推荐用于生产环境):
wp search-replace 'https://olddomain.com' 'https://newdomain.com' --all-tables --dry-run wp search-replace 'https://olddomain.com' 'https://newdomain.com' --all-tables --include-columns=guid
⚠️ 注意:guid 字段仅用于 RSS 和内部标识,不应被替换为新域名(除非明确需要),但其他字段(post_content, option_value, postmeta 等)必须替换。
-
清理缓存并验证
- 清除 WordPress 缓存插件(如 WP Super Cache、LiteSpeed Cache)全部缓存;
- 清空浏览器缓存与 DNS 缓存(ipconfig /flushdns 或 sudo dscacheutil -flushcache);
- 登录新站点后台 →「设置」→「常规」,确认 WordPress 地址(URL) 和 站点地址(URL) 已显示为新域名;
- 检查首页、文章内链、图片路径、登录页、REST API 路径(/wp-json/)是否均返回 200 状态。
? 替代方案推荐(省心高效):
- Duplicator(免费):打包时自动检测并替换 URL,迁移向导内置“URL 替换引擎”,支持多环境映射,无须手动操作;
- UpdraftPlus Premium(付费):提供「迁移模式」,在恢复过程中自动执行全库 URL 替换,并校验链接一致性;
- All-in-One WP Migration(免费版限 512MB):同样内置智能 URL 重写逻辑,适合中小型站点。
? 总结:WordPress 域名迁移不是“备份→恢复”那么简单,本质是一次数据库内容的上下文感知式重构。跳过 URL 替换环节,必然导致重定向循环或混合内容错误。务必使用专业工具执行安全替换,并始终在操作前完整备份新旧数据库。











