上文说到最近给周良博客换了 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 方法
- 找到 Nginx 配置文件,一般在
/usr/local/nginx/conf
目录。 - 找到
include enable-php-pathinfo.conf;
- 将其修改为
include enable-php.conf;
- 终端链接服务器,输入
service nginx restart
重启 Nginx。 - 问题解决。
考虑服务器安全性,如果程序不需要pathinfo,一般建议关闭!
刚来这里,慢慢探索中。
看到最后的解决方案,我居然坏坏的笑了,哈哈!我的想法很多时候和你一样,求助也许更快!
@林三 先自己试试,实在不行再找人求助
这个评论需要验证很帅啊,有提示有颜色还简单。
以前也是用军哥的lnmp,后来用宝塔开心版,现在没有开心版了,好像也只能用lnmp了。
@空空裤兜 我之前测试服务器是用了一段时间宝塔面板,老出问题,还是 LNMP 一键安装包用的省心。
交换链接吗
@主机测评 可以换
@周良粥凉 已添加贵站链接
我站:https://zhujidou.com/
站名:主机测评
@主机测评 已加
伪静态的问题可能性比较大,一般