问题描述
一个网站绑定两个域名访问(123.com abc.com),然后又涉及一个跳转问题(123.com到www.123.com abc.com到www.abc.com)以及http跳到https
PC端Server段的配置:
set $flag 0;
if ($scheme = http) {
set $flag "${flag}1";
}
if ($host = 'www.123.com') {
set $flag "${flag}1";
}
if ($host = 'www.abc.com'){
set $flag "${flag}0";
}
if ($flag ="011"){
return 301 https://www.123.com$request_uri;
}
if ($flag ="010"){
return 301 https://www.abc.com$request_uri;
}
移动端server内的配置:
set $flag 0;
if ($scheme = http) {
set $flag "${flag}1";
}
if ($host = 'm.123.com') {
set $flag "${flag}1";
}
if ($host = 'm.abc.com'){
set $flag "${flag}0";
}
if ($flag ="011"){
return 301 https://m.123.com$request_uri;
}
if ($flag ="010"){
return 301 https://m.abc.com$request_uri;
}
然后检测配置的时候会提示
invalid condition "$flag" in 移动端配置文件
xxx.com
跳转www.xxx.com
,可以直接在DNS解析时就CNAME过去(无MX规则时),或者用URL跳转,这样nginx只需要处理http跳转https(CNAME方案)就可以了,后者甚至连这个也不用搞;