用于加载斜杠的nginx重写规则来加载fpm / wordpress

时间:2017-07-22 15:02:43

标签: php wordpress nginx

目前,我在docker容器中设置了nginx / php-fpm,并将wordpress文件夹作为卷安装在容器中。我希望xyz.com/blog和xyz.com/blog/的功能完全相同。 我有以下nginx配置:

server {
        listen       80 default_server;
        server_name  0.0.0.0;
        root         /mnt/blog;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
        if (!-e $request_filename){
            rewrite ^(.*)$ /index.php last; #converted from .htaccess
        }
    }
    location ~ .php$ {

        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
  }
}

在点击xyz.com/blog/时 - wordpress网站按预期加载,但当我删除尾部斜杠(/) - xyz.com/blog时,我收到301 Moved Permanently错误。如何确保xyz.com/blogxyz.com/blog/行为正确并加载wordpress网站?

1 个答案:

答案 0 :(得分:0)

您希望/blog在未先重定向到/index.php的情况下调用/blog/

根据您现有的解决方案,您可以将if (!-e ...更改为if (!-f ...。有关详细信息,请参阅this document

但是,可以通过以下方式实现相同的功能:

location / {
    try_files $uri /index.php;
}

有关详细信息,请参阅this document