没有index.php的Nginx Wordpress永久链接

时间:2017-03-07 08:05:21

标签: php wordpress nginx permalinks

我有运行php 7 fpm的nginx。 我的Wordpress永久链接设置为/%postname%/。假设我的域名为example.com我希望有这样的永久链接:example.com/postname/但这会导致错误。我可以通过以下链接找到帖子:example.com/index.php?postname/

如何摆脱链接中的index.php?

修改

我的Nginx配置

server {
        server_name localhost;
        root /var/www/;
        index index.html index.htm index.php;

        location ~\.php$ {
                try_files $uri =404;
                fastcgi_pass php:9000;
                fastcgi_index index.php;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_param REQUEST_URI $args;
        }

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

        location /wordpress/ {
                try_files $uri $uri/ /wordpress/index.php?$args;
        }
}

1 个答案:

答案 0 :(得分:0)

您的问题暗示WordPress已安装在location /,因此我不确定您为什么还有location /wordpress

您的配置存在一些问题。

REQUEST_URI的值应设置为$request_uri,这可能已经是fastcgi_params文件中的默认值。这是index.php用于解码非常永久链接的参数。

删除第fastcgi_param REQUEST_URI $args;行。

您的try_files语句缺少?。使用:

try_files $uri $uri/ /index.php?$args;

或者:

try_files $uri $uri/ /index.php;

我发现WordPress不需要将$args传递给/index.php