nginx 多域名正则匹配
Linux 2023/5/9 17:31:57 点击:不统计
原载于:文章来源:www.forasp.cn网站制作学习
nginx 实现多域名正则匹配判断,通过不同域名访问不同路径
server_name的匹配顺序
server_name的匹配顺序
1. 精准匹配 server_name www.forasp.cn
2. 开始为通配符匹配 server_name *.forasp.cn
3. 结束为通配符匹配 server_name www.forasp.*
4. 正则表达式匹配 server_name ~^(.+)\.forasp\.cn$;
5 默认的default_server 处理,如果没有,则跳转到第一个server
我们重点说一下 正则域名匹配, 下面是两个 前缀二级域名匹配,需要说明的一点,
同级别正则匹配 按照顺序优先级处理,第一个匹配不上,开始正则匹配第二个域名,建议通配性正则靠最后处理
# 匹配 apia.forasp.cn apib.forasp api后至少有1个字符
server{
listen 80;
server_name ~^api(.+).forasp.cn$;
default_type text/plain;
root xxx2;
return 200 'a_regex_success';
}
# 匹配 routea.forasp.cn routeb.forasp route后至少有1个字符
server{
listen 80;
server_name ~^route(.+)?.forasp.cn$;
default_type text/plain;
root xxx;
return 200 'b_success';
}
通过nginx域名正则访问不同文件夹, 比如通过二级域名的后缀
# 匹配 apia.forasp.cn apib.forasp api后至少有1个字符,
server{
listen 80;
server_name ~^api(.+).forasp.cn$;
default_type text/plain;
root /api/$1; # 这里的$1 就是括号匹配的字符 apia.forasp.cn 则对应的/api/a 文件夹
}
这样就可以通过 不同正则匹配访问不同目录了。
<%77w%77%2Ef%6F%72p%73%70%2Ec%6E>