博客有一个无限重定向循环

时间:2011-08-21 作者:Zack Burt

为什么是http://compassionpit.com/blog/ 通过无限重定向循环?这是我的nginx conf文件。该站点由端口8000上的nodejs服务器运行,Apache提供博客(wordpress)和论坛(phpBB)。论坛解决得很好,在http://www.compassionpit.com/forum/ ...

此网页具有重定向循环网页位于http://www.compassionpit.com/blog/ 导致重定向过多。清除此站点的Cookie或允许使用第三方Cookie可能会解决此问题。如果不是,则可能是服务器配置问题,而不是计算机问题。

server {
    listen          80;
    server_name     www.compassionpit.org;
    rewrite         ^/(.*) http://www.compassionpit.com/$1  permanent;
}


server {
    listen       80;                # your server\'s public IP address
    server_name  www.compassionpit.com;
    index        index.php index.html;

    location ~ ^/$ {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location @blogphp {
        internal;
        root /opt/blog/;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
        fastcgi_index  index.php;
        fastcgi_pass   127.0.0.1:8080;
    }

    location ~ ^/(forum|blog)/($|.*\\.php) {
        root /opt/;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_index  index.php;
        fastcgi_pass   127.0.0.1:8080;
    }

    location ~ ^/(forum|blog) {
        root /opt/;
        try_files $uri $uri/ @blogphp;
    }

    location ~ ^/(forum|blog)/ {
       root /opt/;
    }


    location @backend {
        internal;
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location ~ / {
        root /opt/chat/static/;
        try_files $uri $uri/ @backend;
    }

}

3 个回复
最合适的回答,由SO网友:EAMann 整理而成

WordPress配置为使用www还是不使用www?您的服务器似乎只在侦听www 版本并尝试重定向非-www 对的请求www 版本

考虑到您提供了指向-www 我猜WordPress正在尝试http://compassionpit.com, 但服务器会将这些请求重定向到http://www.compassionpit.com WordPress将其重定向回http://compassionpit.com.

如果真是这样,要么杀了www 在服务器上重定向或告诉WordPress(通过phpMyAdmin直接设置选项)使用www 域的版本。

SO网友:PJ Brunet

还要检查所有权/权限。如果WordPress做不到这一点,像这样的东西会一次又一次地失败:

if (!-e $request_filename) { rewrite ^.+/?(/wp-.*) $1 last; rewrite ^.+/?(/.*\\.php)$ $1 last; rewrite ^(.+)$ /index.php?q=$1 last; }

SO网友:Lobo

当这种情况发生在我身上时,我通过在theme的函数中添加以下内容来解决它。php

remove_filter(\'template_redirect\', \'redirect_canonical\');

结束