伪原创没用(宝塔面板5.9至6.8版本中默认的wordpress伪静态规则)
优采云 发布时间: 2021-10-05 10:10伪原创没用(宝塔面板5.9至6.8版本中默认的wordpress伪静态规则)
在宝塔面板面板5.9到6.8版本中,对wordpress默认内置规则进行了调整。如果你的面板规则从来没有改变,你可以去更新默认伪有静态规则。
为什么需要调整,因为这些版本默认的伪静态规则是错误的,在最新版本中已经修改了。大鸟估计很多人都没有关注过这个问题,这篇文章文章,就来聊聊这个问题吧。
一:默认规则
先来看看6.9之前版本中默认的wordpress伪静态规则是这样的:
location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
我们中的许多人选择了这个默认的伪静态规则,我们就大功告成了。其实这个规则还是错的,我们可以分析一下,这个规则先调整索引顺序,把index.html放在index.php之前。而且我们知道WordPress的入口文件是index.php,所以这个规则显然是错误的。我们来看看这个默认规则的含义。
如果 index.html 文件存在,新生成的链接会被终止,规则不会被执行。(因为wordpress没有index.html文件,所以没有匹配,所以这句话是没有必要的。)
如果index.php存在,继续匹配index.php,如果index.php不存在,匹配index.php并隐藏index.php文件,这样即使我们输入,也会自动变成这个形式。
这个规则是错误的,而且很奇怪。当然,它是从源头上来的。来源在这里。有兴趣的可以自己去看看:
这条规则配不上wordpress的高大上,我们来看看WordPress官方文档中是怎么写的。
二:Wordpress CP
我们来看看WordPress官方文档和Nginx官方文档都有详细的介绍,具体如下:
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
看,就是这么短,还有两行注释,也就是说,规则其实只有两行!我们来看看这两行注释是什么:
# 这个规则很酷,因为静态内容根本不接触PHP
# 收录“?$args”的目的是即使使用了非默认的永久链接,在使用查询字段时也不会被销毁。
所以正确的 wodpress 规则是:
location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
宝塔面板已经默认改了,我们看图:
三:总结
5.9版本无人值守,所以看到的人也赶紧更新自己的wordpress伪静态规则。当然,WordPress官方给出的规则还是非常强大高效的,而且也兼顾了安全性!
3.1如何更换?
如果是6.X,可以升级到最新版本。之后,您可以自行更改默认的伪静态规则。如果是5.9,你可以把这个最新的规则复制到你的默认值。在 wodpress 伪静态文件内部,您可以稍后保存。
如果你不关心上一个,你可以使用它。如果你有强迫症,你可以换一个新的。
参考资料:
... /食谱/wordpress/
内容