【发布时间】:2015-05-25 05:40:18
【问题描述】:
首先我想澄清一下,我搜索了很多关于这个问题,但我没有找到解决方案。
我在同一个 Nginx(端口 8080)和 Varnish(端口 80)下配置了 2 个 Wordpress 站点。
这是我的实际设置:
map $http_host $blogid {
default 0;
www.site1.com 1;
www.site2.com 2;
}
server {
listen 8080;
server_name www.site1.com site1.com;
root /var/www/site1.com;
...
}
server {
listen 8080;
server_name www.site2.com site2.com;
root /var/www/site2.com;
...
}
我想做的是为site2配置一个从非www到www的重定向。示例:http://site2.com -> http://www.site2.com
我添加了另一个带有重定向的“server”配置,并在另一个“server_name”中只添加了“www.site2.com” '。
map $http_host $blogid {
default 0;
www.site1.com 1;
www.site2.com 2;
}
server {
server_name www.site1.com site1.com;
root /var/www/site1.com;
...
}
server {
listen 8080;
server_name site2.com;
return 301 http://www.site2.com$request_uri;
}
server {
server_name www.site2.com;
root /var/www/site2.com;
...
}
更改上述配置并重新启动 Nginx 后,当访问“http://site2.com”(没有 www)时,它正在从“http://site1.com”加载内容(url 继续 site2.com,没有 www)。访问“http://www.site2.com”会显示正确的内容。
我做错了什么?
我认为重定向不起作用,因为我尝试重定向到 Google.com,但它没有重定向。它不断在“site2.com”中加载“site1.com”内容。
return 301 http://www.google.com
我在下面尝试了这段代码,但结果相同:
rewrite ^(.*) http://www.site2.com$1 permanent;
我的完整 Nginx 配置: http://codepad.org/TfPHS0jH
【问题讨论】:
-
为什么要添加地图代码?因为它在您的示例配置中没有做任何事情?您是否遗漏了示例代码中的某些内容?
-
嗨@Dayo,我把那个配置留在那里,因为我不知道这是否会干扰。这是我完整的 NginX 配置:codepad.org/TfPHS0jH
-
您提供的链接返回 500 服务器错误
-
这里是:pastie.org/private/yzcqqt6thmt6jvxmmlvuhw(我在另一个服务器上粘贴,因为文件太大)
标签: wordpress redirect nginx varnish