Nginx部署WordPress点击链接返回404 Not Found如何调整配置
故障原因
所有子页面返回404的核心问题是根路径的try_files配置不符合WordPress路由要求:当前配置会在请求路径匹配不到本地实体文件/目录时,直接跳转至/404路径返回404响应,完全没有把动态请求交给WordPress入口文件index.php处理,因此只有直接命中根目录index.php的首页可以正常访问。
修复步骤
- 修改server块内的
location /配置,替换错误的try_files规则
原错误配置:
location / { try_files $uri $uri/ /404; }
替换为WordPress标准路由转发规则:
location / { try_files $uri $uri/ /index.php?$args; }
规则逻辑说明:
- 优先匹配请求路径对应的真实静态文件,存在则直接返回
- 其次匹配请求路径对应的真实目录,存在则返回目录索引
- 以上两者都不匹配时,携带原始请求参数把请求转发给WordPress入口文件
index.php,由WP内部路由系统解析对应页面内容,不会直接触发Nginx层404
- 校验并重载Nginx配置让改动生效
执行以下命令,先校验配置语法正确性,确认无报错后重载服务:
# 配置语法校验 nginx -t # 校验通过后重载配置 systemctl reload nginx
额外注意事项
- 不需要额外在Nginx层配置独立的404跳转,请求转发给index.php后,WordPress会自动对不存在的路径返回自带的404模板页面
- 重载配置后如果仍有部分页面404,可进入WordPress后台「设置-固定链接」页面,直接点击保存按钮(不需要修改内容),WP会自动刷新路由重写规则,清除缓存异常。
内容的提问来源于stack exchange,提问作者Maher Ben Taleb Ali
相关产品推荐
相关产品推荐

