问题现象

把链接从日期结构改成简洁结构,首页正常,点进文章全是 404。

原因分析

服务器伪静态规则未更新,请求没有被交给 WordPress 处理,服务器直接按文件路径找页面就返回了 404。判断时先分清是 固定链接 404 本身的配置问题,还是上游调用、运行环境带进来的差异;前者改配置就能收口,后者要沿着请求链路一层层往上找,处理顺序不能颠倒。先在出问题的机器上复现一次,把报错原文和发生时间记下来,再对着日志定位。

处理步骤

  1. 保存固定链接触发规则重写
  2. 检查服务器配置文件是否可写
  3. 手动补上重写规则

对应的命令或配置片段如下,可直接复制:

# Nginx
location / {
  try_files $uri $uri/ /index.php?$args;
}
# Apache 确认 AllowOverride All

排查时把每一步的输出留下来,后面再遇到同类问题,对照日志就能判断是哪一层先出错的。改动前把原配置备份一份,出问题时能马上回退,比现场找原因省时间。

验证结果

内页链接可正常访问,旧链接按需做跳转。

作者 9823189