WordPress和Nginx-固定链接不支持斜杠结尾

时间:2017-12-07 作者:Jambul Jakhaia

我在nginx配置文件中添加了这一行

try_files $uri $uri/ /index.php?$args;
rewrite ^([^.]*[^/])$ $1/ permanent; #adding slash
permalinks工作正常,但在添加/(请参见重写规则如何添加)NGINX时会给我404错误。

例如,SomeDomain。添加SlashHomeDomain后的com/post/ThisPermalink(工作)。com/post/ThisIsPermaLink/(给出404错误)

但这两个版本都在Apache环境中工作。Apache正在将所有不带斜杠的请求(somedomain.com/post/ThisIsPermaLink)重定向到somedomain。com/post/ThisIsPermaLink/

所以我需要与NGINX相同的功能

2 个回复
SO网友:kierzniak

我认为你不需要这个重写规则来添加正斜杠。WordPress将为您重定向。

我正在使用以下代码调试重定向:

function wpse_287994_debug_redirect( $url ) {

    echo $url;
    die();
}

add_action( \'wp_redirect\', \'wpse_287994_debug_redirect\' );
当我试图访问地址时http://example.com/lorem-ipsum (此页面必须存在)以上脚本将输出http://example.com/lorem-ipsum/ 因此,使用正斜杠重定向到地址是可行的。

我的ngnix配置如下所示:

server {
  listen *:80;
  server_name           example.com;
  root                  /var/www/example;

  access_log            /var/log/nginx/access.log;
  error_log             /var/log/nginx/error.log;

  index index.php index.html;

  location / {
    # try to serve file directly, fallback to index.php
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ \\.php$ {

    include fastcgi.conf;

    fastcgi_pass 127.0.0.1:9070;
  }
}
在Nginx中,此部分已经进行了重写try_files $uri $uri/ /index.php?$args;. 这部分的意思是这样的。

对于以开头的位置/ 角色尝试从文件系统加载文件,如果没有这样的文件,则将其重写到index.php 带参数。

SO网友:Stoyan

t尝试以下操作:更换:

try_files $uri $uri/ /index.php?$args;
使用:

try_files $uri $uri/ /index.php$is_args$args;
在您网站的nginx配置文件中。

然后在永久链接(wordpress设置)

结束

相关推荐

Nginx+WordPress子域多个,核心在子目录中

我安装了WordPressthat works perfectly on a Apache server. 我目前正在改变我的托管公司(新的一家提供NGinx)和我的开发堆栈(转移到vvv)。Here is how the install is set-up:它是一个Wordpress子域多站点安装,核心在一个子文件夹(/wp-app/)中,wp内容在另一个子文件夹(/wp-app-content/)中,当然还有我的索引。php,wp配置。php和。根文件夹中的htaccess以及这两个文件夹。Here