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

作者:晓白pos网 发布时间:2020-10-24 21:56:04

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

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

解决 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. 问题解决。
标签:, , , , ,

联系邮箱:ert5tyx@163.com(三个工作日内处理)
Copyright © 2020 · 晓白pos网 皖ICP备2022013394号-7