域名级别
顶级域名: .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;
}
}
发表回复