Wordpress和NGINX / wp-admin重定向循环

时间:2016-01-24 13:50:50

标签: wordpress nginx

我的nginx.conf有一个包含以下内容的服务器博客:

    location ~ \.php$ {
            root /var/www/html/blog;
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
    }
    location /blog {
            root /var/www/html/blog;
            include /etc/nginx/mime.types;
            try_files $uri $uri/ /index.php?q=$uri&$args;
    }

但是当我尝试访问/blog/wp-admin这些设置时,我的浏览器会陷入某个重定向循环。

如果我将nginx.conf中的根网址更改为/var/www/html,则/blog/wp-admin有效,但我的帖子永久链接会给我404错误。

我的WP文件位于/var/www/html/blog。我安装了“SSL不安全内容修复程序”插件,因为我的图片在我的网站上出现混合内容错误,该网站的Cloudflare页面规则始终使用SSL。

我的WP addressWP home都设置为http://xxx/blog

有人修了类似的东西吗?

由于

1 个答案:

答案 0 :(得分:1)

我认为主要问题是与root指令不一致。您的PHP配置在/var/www/html/blog中有WordPress,而您的静态配置在/var/www/html/blog/blog中有WordPress。

假设WordPress安装在/var/www/html/blog的根目录中,并且对于真实文件和永久链接,URI应以/blog/为前缀,则入口点的正确URI应为{{1} }。

/blog/index.php文件应该是:

nginx.conf

如果您在外部root /var/www/html; location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; } location /blog { include /etc/nginx/mime.types; try_files $uri $uri/ /blog/index.php; } 容器中有一个有冲突的root指令,则上述server指令可以放在两个root未修改

我会尝试location而不是/blog/index.php作为/blog/index.php?q=$uri&$args的最后一个元素,因为根据我的经验,WordPress使用REQUEST_URI参数来路由永久链接而不是try_files参数正如你暗示的那样,但YMMV。

如果您在此服务器根目录中确实有其他应用程序,并希望更完全地隔离WordPress q,则可以嵌套PHP位置块,如下所示:

root