如何解决启用NGINX后,子目录中WordPress博客中的所有帖子都给出404页面未找到
从Plesk(Web Pro)启用NGINX之后,我在主目录和子目录博客中的所有帖子均显示404页面未找到错误。
我在Plesk的“其他NGINX指令”中放置了以下代码,以修复所有URL,但它仅修复了主站点(example.com),而子目录博客(example.com/tech/ .com / mag /和example.com/dispatch/)仍显示404错误。
# Wordpress Permalinks
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
之后,我删除了代码并放置了以下代码:
if (!-e $request_filename) {
set $test P;
}
if ($uri !~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon|internal-nginx-static-location)) {
set $test "${test}C";
}
if ($test = PC) {
rewrite ^/(.*)$ /index.php?$1;
}
我在official Plesk pages之一中找到了此代码,它说:
如果WordPress安装位于子目录(例如,“ httpdocs / sub-dir”)中,或者这是基于子目录的WordPress多站点网络,请在/index.php之前添加/ sub-dir /?$ 1,这样它看起来像这样:重写^ /(。*)$ /sub-dir/index.php?$1; 注意:对于基于子文件夹的WordPress多站点网络,请为每个子目录添加上述规则。
到目前为止,我已经知道了(这不起作用):
if (!-e $request_filename) {
set $test P;
}
if ($uri !~ ^/(plesk-stat|webstat|webstat-ssl|ftpstat|anon_ftpstat|awstats-icon|internal-nginx-static-location)) {
set $test "${test}C";
}
if ($test = PC) {
rewrite ^/(.*)$ /index.php?$1;
rewrite ^/(.*)$ /tech/index.php?$1;
rewrite ^/(.*)$ /mag/index.php?$1;
rewrite ^/(.*)$ /dispatch/index.php?$1;
}
任何帮助将不胜感激!
P.S。主网站的运作就像一个魅力。在example.com/tech/和/ mag /和/ dispatch /中,尽管首页很好,但帖子却给我一个404页面错误。
解决方法
因此,经过一个月的搜索,我终于找到了一个很好的解决方案。
首先,登录到您的Plesk(为此使用Plesk)并转到网站的“ Apache&nginx设置” 页面。在“其他NGINX指令” (首先修改)中,粘贴以下代码:
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/tech/(.*)$ /subfolder1/index.php?url=$1 last;
}
if (!-f $request_filename){
set $rule_1 1$rule_1;
}
if (!-d $request_filename){
set $rule_1 2$rule_1;
}
if ($rule_1 = "21"){
rewrite ^/dispatch/(.*)$ /subfolder2/index.php?url=$1 last;
}
subfolder1和subfolder2代表每个子目录站点的网站根文件夹。
- subfolder1 代表 example.com/subfolder1
- subfolder2 代表 example.com/subfolder2
等。
对于要添加的每个子文件夹WP网站,只需放置以下代码,并用您的网站名称更改 subfolder1 。
if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if (!-d $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
rewrite ^/tech/(.*)$ /subfolder1/index.php?url=$1 last;
}
P.S。转换后的代码需要添加到“其他NGINX指令”中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。