WordPress固定链接 %postname% 和 pathinfo 的冲突

主要冲突表现在,在访问wordpress的正常页面、分类、文章时,都正常访问,正常显示,而当你访问一个不存在的url时,你的站点不会显示到404页面,而是显示的首页;

可能大家听起来会很模糊,没明白过来是啥意思;

例如:访问 https://www.huitheme.com/theme 可以访问,因为这个页面真实存在,所以没有问题;而当访问到 https://www.huitheme.com/gerg2gfw 时,此url是不存在的,访问到不存在的url时应该显示404页面或者直接nginx提示404错误,但我最近遇到的情况却是,访问不存在的url时,显示的是首页;

这在某些人眼里是好事,他们会觉得这样用户不会被跳出,始终停留在网站内,这是表面的优点,但隐藏的缺点就是,百度会收录一堆不存在的url以展示是你的首页,以导致,百度认为你有若干个首页,从而对你的站点进行降权。

排查思路:

  • 首先,排查问题的第一步,就是先排查主题的原因,换了主题,问题依旧;
  • 其次,如果有插件就插件全停,我没用任何插件,所以插件因素自动无;
  • 再其次就是 通过 固定链接,设置其他的,是否问题依然存在,得到的结论是 设置其他的形式问题消失,唯独设置/%postname%.html 这个形式,会产生问题;
  • 那么,可以确定还是伪静态的问题,于是,先从服务器的伪静态入手,服务器我是nginx,一般2个文件,一个是nginx.conf 这个文件,我基本没自己改过,都是默认;
  • 所以,就从我站点的 ***.conf 配置文件入手,先一行一行的排除,当我删除到 php-pathinfo.conf的时候,发现,问题解决了,所以,我就研究了一下 pathinfo 是干嘛用的。

百度了一下,得到的答案是:只有极少数程序使用pathinfo,如基于CI框架的程序。常见的wordpress、discuz x等都不需要开启!!!不需要pathinfo的网站程序开启pathinfo会访问出现各种问题。
如此不起眼的冲突,谁能想起是当初在配置服务器添加网站时勾选了pathinfo造成的呢?甚至有很多人当初添加网站的时候也勾选了pathinfo,但没有采用%postname%的固定链接的形式,所以也感知不到问题存在。

版权所有

绘主题-HUiTHEME

原文链接:https://www.huitheme.com/wordpress-postname-pathinfo.html