在nginx中配置泛域名的切换

背景

在 nginx 中配置自动跳转,凡是访问原域名的地址都自动指向到新域名。

由于涉及到泛域名,因此需要在跳转时获取当前的主机记录,再动态拼接成新域名的主机地址。

 

方案一:使用if(不推荐

    server {
        listen           80;
        server_name      *.myhome.com;
        location  /  {
            if ($host ~* ^(.*).myhome.com) {
                set $host_edu $1.myhome.edu.cn;
                rewrite ^(.*)$ http://$host_edu$1 permanent;
            }
        }
    }

 

方案二:使用map(推荐

http {
    map $host $host_edu {
        ~*^(.*).myhome.com    $1.myhome.edu.cn;
        default               www.myhome.edu.cn;
    }
    server {
        location / {
            rewrite ^(.*)$ http://$host_edu$request_uri permanent;
            #rewrite ^(.*)$ http://$host_edu$1 permanent;
        }
    }
}

 

注意:map 指令只能在 http 块中使用。

posted @ 2022-10-28 11:05  网无忌  阅读(390)  评论(0编辑  收藏  举报