[英]How to Redirect a non-www to www with Mutiple Sites? (Nginx and Varnish)
首先,我想澄清一下,我对此问题进行了很多搜索,但是还没有找到解决方案。
我在相同的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_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而不万维网)。 访问“ http://www.site2.com ”显示正确的内容。
我做错了什么?
我认为重定向无法正常工作,因为我尝试重定向到Google.com,但没有重定向。 它一直将“ site1.com”内容加载到“ site2.com”中。
return 301 http://www.google.com
我在下面尝试了此代码,但结果相同:
rewrite ^(.*) http://www.site2.com$1 permanent;
我完整的Nginx配置 : http : //codepad.org/TfPHS0jH
您的网站不是由Nginx服务,而是由Varnish服务。
当您导航到http://www.siteX.com或http://siteX.com时 ,您将转到http://www.siteX.com:80或http://siteX.com:80,然后根据您的解释,Varnish监听端口80,而不是Nginx。
没有真正的理由必须将两者一起使用(尽管您可能在某些网站上已经读过),并且您应该摆脱一个或另一个,而专注于自己决定保留的一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.