场景
客户端 | 域名 | 描述 |
---|---|---|
pc端 | www.test.com |
用于pc端访问官网 |
移动端 | m.test.com |
用于移动端访问 |
现在的需求是这样,在pc端访问www.test.com
和m.test.com
都跳转到www.test.com
而在移动端访问www.test.com
和m.test.com
都跳转到m.test.com
pc端conf
server{
listen 443;
ssl on;
#listen [::]:80;
server_name www.test.com test.com;
index index.html index.htm index.php default.html default.htm default.php;
# 真正用到的只有行
if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry){
rewrite ^(.*) https://m.test.com$1 permanent;
}
}
移动端conf
server{
listen 443;
ssl on;
#listen [::]:80;
server_name m.test.com;
# 真正起作用的这行
if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) https://www.test.com$1 permanent;
}
index index.html index.htm index.php default.html default.htm default.php;
}
需要注意的是 ,如果想让pc 跳转到移动 或者移动跳转到 pc 是302 临时重定向,可以修改 permanent 为 redirect
- redirect – 返回临时重定向的HTTP状态302
- permanent – 返回永久重定向的HTTP状态301