先把当时的情况摆出来。数据库和文件都搬到新域名,wp-config.php 里 WP_HOME 与 WP_SITEURL 还是旧地址,登录后台点任何菜单都跳回 old.example.com,编辑文章时 nonce 校验失败。

排查方向其实有限,先把可能性排一排。常量写死在配置文件里,优先于数据库里的 siteurl 选项。也可能是旧域名已停解析,页面跳过去就是打不开。

还有一种情况,CDN 缓存了带旧域名的重定向响应。

上来先看配置里的实际常量

grep -nE "WP_HOME|WP_SITEURL" wp-config.php

然后改成新域名并同步数据库选项

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

等前面都确认过,再确认后台不再发生跳转

curl -sI https://www.example.com/wp-admin/ | grep -i location

同样的操作我在测试机上先走了一遍,线上只做验证过的部分。

怎么算真的好了,看的是同一批现象。后台请求不再返回指向旧域名的 Location,文章保存成功,日志里旧域名的请求只剩 301。

常量一旦写死,后台设置页里的地址输入框会变灰,改之前先确认是谁加的,免得下次又被人改回去。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189