任何人都知道如何解决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 。