IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    周良粥凉发表于 2020-08-06 13:29:45
    love 0

    上文说到最近给周良博客换了 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 页面问题 首发自 周良博客.



沪ICP备19023445号-2号
友情链接