WordPress

解决 WordPress 错误页面无法正确识别为 404 页面问题

上文说到最近给周良博客换了 zlbk.net 域名,服务器迁移到了阿里云 ECS 杭州。文件数据迁移、部署新服务器环境、Https 证书部署、老域名 301、静态文件上阿里云 OSS 等流程基本轻车熟路。整个过程没出什么问题,返倒是网站上线后遇到一个奇怪的问题。

WordPress 居然不能正确识别错误网页跳转到 404 页面了。

状况概述

这个大概的表现情况就是:
- 访问 https://zlbk.net/404/ 这个无内容页面,正常逻辑上是跳转 ng 设置或者 WordPress 主题自带的 404 页面,但实际情况这个页面居然直接显示了博客首页的内容。
- 而访问 https://zlbk.net/404.html 这个 URL,可以正常识别无效页面,显示为 404 页面。

懵逼不懵逼?也就是说,博客所有 URL 不为 .html 结尾的 404 页面,打开后全部都会显示博客首页内容,这个事情体验太差了。

问题排查路径

记录一下我的问题排查过程,可能你没有遇到问题,但这个一步步控制变量、提出假设验证假设的排查逻辑方法说不对你有用。

排查 WordPress 主题是否出错

最初步的猜测可能是主题有问题:换一个已知没问题主题进行测试。因为我手上有两个博客,都换成相同主题,实测 WordPress 主题没问题,排除该原因。

排查 Nginx 配置是否有误

既然是跳转问题,猜测可能是 Nginx 配置文件规则写错了。查看 WordPress Nginx 配置文档说明,对比后后确认规则无误,可排除规则引起问题。

但不能完全排除 Nginx 无问题,我又将将相同规则的 nginx 应用于另外站点,也未发现问题。再确定两个站对比变量是否一致,发现阿里云上挂了两个站,测试 VPS 上只有一个站,抱着试一试的心态,去测试服务器上又挂了一个站。

问题复现,那基本可以确认问题出在 Nginx 配置文件上。

最终解决

本身我对 Nginx 不会做频繁更改,一直就只会写那么几个固定的规则。所以选择了求助大牛这条路。因为服务器环境是用 LNMP 搭建的,所以找了 LNMP 一键安装包的作者@军哥 咨询。说明遇到的问题、当前的排查方法和对应结果。

最后猜测是 Nginx 配置中开启了 pathinfo 导致。

LNMP WordPress 站点关闭 pathinfo 方法

  1. 找到 Nginx 配置文件,一般在 /usr/local/nginx/conf 目录。
  2. 找到 include enable-php-pathinfo.conf;
  3. 将其修改为 include enable-php.conf;
  4. 终端链接服务器,输入 service nginx restart 重启 Nginx。
  5. 问题解决。

微信扫一扫,分享到朋友圈

解决 WordPress 错误页面无法正确识别为 404 页面问题
10

你也可能喜欢

10 条评论

  1. 看到最后的解决方案,我居然坏坏的笑了,哈哈!我的想法很多时候和你一样,求助也许更快!

    1. @林三 先自己试试,实在不行再找人求助

  2. 这个评论需要验证很帅啊,有提示有颜色还简单。

  3. 以前也是用军哥的lnmp,后来用宝塔开心版,现在没有开心版了,好像也只能用lnmp了。

    1. @空空裤兜 我之前测试服务器是用了一段时间宝塔面板,老出问题,还是 LNMP 一键安装包用的省心。

      1. @周良粥凉 已添加贵站链接
        我站:https://zhujidou.com/
        站名:主机测评

  4. 伪静态的问题可能性比较大,一般

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

关于周良粥凉

产品经理,现电商从业者;从事过互联网医疗与金融等行业。 / 写了 9 年独立博客,喜恶皆在字里行间。

分类

微信扫一扫

微信扫一扫