在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 块中使用。
版权声明: 本文为博主 网无忌 原创文章,欢迎转载,但请务必标注原文链接。