wp option update home 'https://test.example.com'
wp option update siteurl 'https://test.example.com'
wp rewrite flush --hard
nginx -t && nginx -s reload

测试站从子目录搬到独立域名,首页能开,文章页全部 404,后台把固定链接重新保存一次又恢复正常,重启后又变回 404。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:rewrite 规则还带着旧路径前缀,nginx 的 try_files 也没指向新的 index.php。重写缓存存在数据库里,没有随域名更新。

这次卡住的地方就在「测试站 rewrite 重建」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

处理上按这个顺序:先更新站点地址和安装地址两个选项,别只改一个;用命令重建规则并刷新 nginx 配置;nginx 的 location 改成 try_files 落到 index.php;改完逐条打开文章、分类、标签页确认。

确认没问题再收工,文章页、分类页、标签页都返回 200,重启服务后不再出现 404。

作者 9823189