利用Nginx的rewrite功能,实现绑定二级域名到相应的模块
location用于实现访问控制的前缀:
~ 波浪线表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= 进行普通字符精确匹配
#提取二级域名第一部分
if ($host ~* ^([^\.]+)\.([^\.]+)\.([^\.]+)$) {
set $rs1 $1;
}
#www开始的不重写
if ($rs1 ~* ^www$) {
rewrite ^/(.*) /$1 last;
break;
}
#静态资源不能转发
rewrite ^/public(.*) /$1 last;
#重写所有二级域名
rewrite ^/(.*) /$rs1/$1 last;