Nginx + Apache + Wordpress 重定向到 localhost/127.0.0.1

Nginx + Apache + Wordpress 重定向到 localhost/127.0.0.1

有人知道如何修复 Nginx + Apache + Wordpress 重定向到 localhost/127.0.0.1 的问题吗?我尝试了很多不同的修复方法,但都没有用。

我可以去http://domain.com/wp-admin很好,可以正常使用那里的一切。但如果我尝试去http://域名.com它重定向到 127.0.0.1。如果我只是通过 Apache 运行,一切也都正常工作。

以下是我的 nginx.conf 的相关部分:

server {                                
    listen 80;           
    server_name domain.com;      
    root /var/www/html/wordpress;       

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

    location ~ \.php$ {
        proxy_pass http://127.0.0.1:8080; 
    }                                                                 
}

以下是我的 httpd.conf 的相关部分:

Listen *:8080

ServerName <ip>

<VirtualHost *:8080>
    ServerAdmin test@test
    DocumentRoot /var/www/html/wordpress
    ServerName domain.com
</VirtualHost>

我的 nginx 日志如下所示:

<ip> - - [19/Jun/2012:22:35:35 +0400] "GET / HTTP/1.1" 301 0 "-" "Mozilla/5.0

我的 httpd 日志如下所示:

127.0.0.1 - - [19/Jun/2012:22:24:46 +0400] "GET /index.php HTTP/1.0" 301 - "-"

--

WordPress 地址 (URL) 和站点地址 (URL) 都相同http://domain.com

添加 proxy_set_header Host $host; 导致“此网页存在重定向循环”。

如果我使用它也有效

地点 / {
  proxy_set_header 主机 $host;
  代理密码 http://127.0.0.1:8080;
}

但不包括任何到达其他位置的 try_files 语句。

答案1

这是一个老问题,但当我遇到时......

位置 ~ \.php$ {

仅将请求代理到 WordPress 是不够的。基本上,你应该反过来做:

将所有静态文件请求明确发送到 Nginx:

位置 ~ \.(css|js|ico|jpg|jpeg|png|gif|svg|pdf)$ {
    尝试文件$uri $uri/ /index.html;
}

然后将其余部分代理到 Apache:

地点 / {
    proxy_set_header 主机 $host;
    代理密码 http://127.0.0.1:8080;
}

答案2

这可能不是服务器问题

http://domain.com/wp-admin/options-general.php 登录仪表板后,确保站点地址(URL)与 WordPress 地址(URL)相同。

答案3

请设置proxy_redirect off;你的location ~ \.php$区块。更多信息请查看官方文档代理重定向

相关内容