域名级别
顶级域名: .com .cn .icu .edu .org .top
二级域名: wangshaogang.com bunny.icu edu.cn org.cn
三级域名: www.wangshaogang.com test.bunny.icu
需求
最近我的网站域名由*.wangshaogang.com修改为*.bunny.icu,希望访问旧的url能自动跳转到新的url,跳转时只修改二级域名,同时保持三级域名前缀、url路径、参数都不改变,也就是实现这样的重定向效果:
https://pic.wangshaogang.com/ -> https://pic.bunny.icu/
https://pic.wangshaogang.com/test1 -> https://pic.bunny.icu/test1
https://pic.wangshaogang.com/test1?p=123 -> https://pic.bunny.icu/test1?p=123
配置
单域名
如果三级域名只有一个,直接用rewrite永久重定向即可
server {
    listen                  80;
    server_name             www.wangshaogang.com;
    ssl_certificate         /root/nginx/ssl/_.wangshaogang.com_chain.crt;
    ssl_certificate_key     /root/nginx/ssl/_.wangshaogang.com_key.key;
    rewrite ^(.*)$          http://www.bunny.icu$1 permanent;
}
多域名
rewrite后面的正则表达式只能获取路径和参数,如果还要获取三级域名,还要用到if语句。
server {
    listen                  443 ssl;
    server_name             *.wangshaogang.com;
    ssl_certificate         /root/nginx/ssl/_.wangshaogang.com_chain.crt;
    ssl_certificate_key     /root/nginx/ssl/_.wangshaogang.com_key.key;
    if ( $host ~* ^(.*).wangshaogang.com) {
        set $dn_prefix $1;
        rewrite ^(.*)$      http://$dn_prefix.bunny.icu$1 permanent;
    }
}
                
发表回复