文件和数据库都搬完了,首页正常,点进文章和分类全部 404。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,新服务器的重写规则没有同步,请求没被交给程序处理,服务器按文件路径找不到页面就返回了 404。
「迁移后伪静态失效」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
location / {
try_files $uri $uri/ /index.php?$args;
}
# 重载
nginx -t && systemctl reload nginx
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。
具体做法是,补齐伪静态规则;确认配置目录可写;重载服务后复测内页。
最后用这个标准收尾,内页与分类页均可正常访问。