子比主题开发文档
使用指南Codestar Framework主题扩展在线部署AI 功能推荐插件赞助打赏

站点迁移与换域名

梳理 WordPress 与子比主题迁移、换域名、数据库序列化替换、附件 URL、回调域名、缓存和验收流程。

站点迁移和换域名不是只改 DNS。WordPress 的站点地址、数据库里的历史 URL、媒体附件、主题设置、页面模块、小工具、支付回调、第三方登录、验证码平台、CDN 和缓存都可能保留旧域名。

子比主题功能链路多,迁移后要重点验证登录、用户中心、商城、支付、论坛、投稿、图片灯箱、消息通知和移动端入口。只看首页能打开,不能说明迁移完成。

迁移前清单

迁移前先备份:

内容说明
数据库文章、用户、评论、订单、设置、主题配置、模块配置都在数据库里
wp-content/uploads媒体库、头像、附件、支付证书、二维码、商品图片
主题和插件主主题、子主题、站点插件、自定义扩展
wp-config.php数据库连接、缓存常量、Redis 配置、调试配置
Web 配置Nginx/Apache/OpenLiteSpeed 站点配置和伪静态
SSL 证书旧证书、证书申请方式和强制 HTTPS 规则

数据库备份和文件备份要来自同一个时间点。商城、支付和用户中心活跃的站点迁移时,建议先进入维护状态,避免迁移过程中继续产生订单、评论、余额变更和用户资料更新。

正确顺序

推荐顺序:

  1. 备份数据库和文件。
  2. 在新服务器恢复文件和数据库。
  3. 修改 wp-config.php 数据库连接。
  4. 绑定新域名或临时调试域名。
  5. 更新 WordPress siteurlhome
  6. 做数据库 URL 替换。
  7. 保存固定链接。
  8. 重新签发 SSL 证书。
  9. 清理对象缓存、页面缓存、OPcache 和 CDN。
  10. 按验收清单测试子比主题功能。

DNS 解析和站点绑定见 域名解析与站点访问。固定链接和 CDN 排除见 伪静态、缓存与 CDN

数据库连接

迁移后数据库连接错误,先检查 wp-config.php

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'password');
define('DB_HOST', '127.0.0.1');

常见问题:

现象检查
Error establishing a database connection数据库名、用户名、密码、主机
后台能进但数据不对导入到了另一个数据库,或表前缀不一致
中文乱码数据库字符集、导入方式、备份编码
部分订单或用户缺失备份时间点不一致,迁移时站点仍在写入

如果新旧服务器数据库版本差异很大,先在测试环境导入验证。不要直接在生产环境第一次尝试大库迁移。

更新站点地址

WordPress 有两个关键地址:

配置说明
siteurlWordPress 核心地址
home站点前台地址

可以在后台 设置 -> 常规 修改,也可以用 WP-CLI:

wp option update home 'https://new.example.com'
wp option update siteurl 'https://new.example.com'

如果后台进不去,可以临时在 wp-config.php 加:

define('WP_HOME', 'https://new.example.com');
define('WP_SITEURL', 'https://new.example.com');

这只适合临时救急。长期配置还是建议写回数据库,避免后台显示和实际访问混乱。

序列化替换

WordPress 很多配置存在序列化数组里。子比主题的主题设置、页面模块、小工具、文章 meta、商城配置、支付配置也可能是数组结构。不要用普通文本编辑器直接替换 SQL 文件里的 URL,因为序列化字符串长度会被破坏。

推荐使用 WP-CLI:

wp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables --precise --recurse-objects --skip-columns=guid --dry-run
wp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables --precise --recurse-objects --skip-columns=guid

先跑 --dry-run 看命中数量,再真正执行。--skip-columns=guid 是常见做法,避免修改历史文章的 GUID。若站点业务要求统一 GUID,要先确认订阅、同步和外部引用影响。

同时检查这些形式:

http://old.example.com
https://old.example.com
//old.example.com
old.example.com
www.old.example.com

如果从 HTTP 切到 HTTPS,也要替换旧协议图片和静态资源,否则会出现混合内容。

子比主题重点数据

换域名后重点检查这些位置:

数据风险
Logo、背景图、默认图主题设置里仍是旧域名
页面模块和小工具图片、链接、按钮、广告仍指旧站
文章正文图片、附件、短代码参数仍是旧 URL
头像、封面、认证资料用户 meta 或附件 URL 仍指旧站
商城商品图和自动发货内容商品详情、发货内容、下载链接错误
Zibpay 支付证书和二维码附件 ID 还在,但物理文件未迁移
OAuth 绑定信息回调域名变更后第三方登录失败
分享海报和微信分享图片跨域、JS-SDK 域名、缓存旧图

如果附件 ID 存在但文件没迁移,数据库替换没有意义。必须确认 wp-content/uploads 中真实文件存在。

外部平台同步

换域名后要同步外部平台:

平台检查
支付平台支付回调、同步跳转、证书、授权域名
第三方登录OAuth 回调地址、应用域名、白名单
短信或验证码域名白名单、回调地址、前端来源
邮件邮件模板链接、发件域名、SPF/DKIM
微信公众号JS 安全域名、网页授权域名、模板消息链接
CDN源站域名、回源协议、缓存规则、证书
搜索平台站点验证、sitemap、百度提交、canonical

支付回调尤其重要。订单付款成功但站内状态不更新时,先看支付平台是否仍在请求旧域名。

固定链接和伪静态

迁移后一定要重新保存固定链接:

  1. 进入 设置 -> 固定链接
  2. 不改也点击保存。
  3. 清理缓存。
  4. 测试文章页、分类页、用户中心、商城商品页、论坛页。

Nginx 常见规则:

location / {
    try_files $uri $uri/ /index.php?$args;
}

如果首页能打开但内页 404,多半是固定链接或伪静态问题,不是 DNS 问题。

HTTPS 切换

从 HTTP 切到 HTTPS 时,要同时处理:

项目说明
SSL 证书覆盖主域名和 www
WordPress 地址homesiteurl 使用 HTTPS
数据库 URL图片、附件、模块链接替换为 HTTPS
强制跳转Nginx/面板/CDN/插件只保留一处主规则
CDN 回源回源协议和源站证书一致
第三方回调支付、OAuth、验证码后台同步 HTTPS

混合内容常见于正文图片、背景图、广告图、用户头像和自定义 HTML。浏览器控制台会直接指出哪些资源仍是 HTTP。

缓存和 OPcache

迁移后按顺序清理:

  1. WordPress 缓存插件。
  2. Redis 对象缓存。
  3. OPcache 或重启 PHP-FPM。
  4. Nginx/OpenLiteSpeed 页面缓存。
  5. CDN 缓存。
  6. 浏览器缓存。

Redis 和 OPcache 的边界见 Redis 与 OPcache 性能优化。如果数据库已经替换成功但页面仍显示旧域名,多数是页面缓存、对象缓存或 CDN 没清干净。

验收清单

迁移完成后至少测试:

功能检查点
首页和文章页图片、样式、链接、canonical
登录注册登录态、验证码、找回密码、跳转地址
用户中心头像、封面、余额、积分、消息、设置
投稿和媒体上传、缩略图、附件、图片灯箱
商城商品页、购物车、下单、支付、订单状态
支付回调平台回调能到达新域名,订单能更新
论坛板块页、帖子页、发帖、评论、排序
第三方登录回调地址、绑定状态、扫码或跳转
邮件通知邮件里的链接是否是新域名
移动端菜单、底部 Tabbar、弹窗、支付按钮

如果站点有会员、付费下载、自动发货、分佣提现等业务,迁移后要用小额真实流程或测试环境完整跑一遍。

回滚策略

迁移前要保留回滚方案:

场景回滚方式
新站数据库导入失败恢复旧站维护前数据库
替换 URL 出错恢复替换前数据库备份
新域名解析异常临时切回旧 DNS 或旧服务器
新服务器环境异常旧站保持只读或短期继续服务
支付回调异常暂停支付入口,避免产生异常订单

不要在没有备份的情况下直接对生产数据库做全表替换。任何批量替换前都先导出数据库,并记录旧域名、新域名、执行命令和执行时间。

开发边界

  • 不用普通文本替换 SQL 文件里的域名,避免破坏序列化数据。
  • 不只改 homesiteurl,还要替换正文、附件、主题设置、小工具和模块里的 URL。
  • 不只验证首页,必须验证登录、支付、用户中心、商城、论坛和 Ajax。
  • 支付、OAuth、验证码、微信、短信、CDN、搜索平台都要同步新域名。
  • 附件 ID 和 URL 不等于物理文件存在,迁移后要检查 uploads
  • 批量替换前先 --dry-run,替换后立即备份一份新数据库。

本页吸收了子比官网换域名、批量替换网站链接 URL 类公开教程,并结合 WordPress、子比主题动态页面、Zibpay 支付、OAuth、媒体附件、Redis/OPcache 和 CDN 迁移排查整理。

On this page