Nginx + Apache + WordPressredirect到localhost / 127.0.0.1

任何人都知道如何解决Nginx + Apache + WordPressredirect到localhost / 127.0.0.1的问题? 我已经尝试了很多不同的修补程序,但没有一个为我工作。

我可以去http://domain.com/wp-admin就好了,正常使用。 但是,如果我尝试去http://domain.comredirect到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主机$主机; 结果在“这个网页有一个redirect循环”。

如果我使用它也可以

 位置 / {
   proxy_set_header主机$主机;
   proxy_pass http://127.0.0.1:8080;
 } 

但不包含任何落在其他位置的try_files语句。

这是一个古老的问题,但当我遇到…

 位置〜\ .php $ {

将代理请求代理到WordPress是不够的。 基本上,你应该这样做:

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

位置〜\。(css | js | ico | jpg | jpeg | png | gif | svg | pdf)$ {
     try_files $ uri $ uri / /index.html;
 }

然后把其余的代码交给Apache:

位置 / {
     proxy_set_header主机$主机;
     proxy_pass http://127.0.0.1:8080;
 }

这可能不是服务器问题

login到仪表板后请访问http://domain.com/wp-admin/options-general.php ,并确保站点地址(URL)与WordPress地址(URL)相同。

proxy_redirect off; 在你的location ~ \.php$块。 有关更多信息,请查看官方文档proxy_redirect 。