Ngnix的server_name正则匹配执行顺序
在Ngnix中可以使用正则表达式进行匹配,[xyz]的意思是可以匹配任何字符串,\w的含义相当于与以下任意字符匹配 A-Z a-z 0-9 和下划线,等效于[A-Za-z0 9_],使用^匹配匹配搜索字符串开始位置,\的意义是可以标记特殊字符,例如.这个特殊字符,
简单讲一下,下面的配置
server{
listen 9090;
server_name ~^www\.(\w+)\.com$;
default_type text/plain;
return 200 $1 $2 ..;
}
这一行配置的含义是 ~(波浪线标识是一个正则表达式),^(开始的意思),上面的句子是开始,开始要有三个www,\.转义就是一个. (\w+)代表的是一个数字,+号代表一次或者多次 \.还是.的意思,最后以com$作为结尾
下面就是Ngnix的一个server_name的配置资料
现在只要匹配带3个w,中间是英文和数字,最后结尾是com的都能访问到,之前在hosts中有相关的配置资料
需要注意的是在配置server_name的时候,~(代表使用正则的意思),后面不能加空格,否则会出现报错的情况
可以做一个简单的配置,使用return返回一个表达式,这里使用return返回时,要先设置 default_type text/plain; 否则会以流的形式通过,不显示
$1最后将会显示itheima
$1最后拿到值itheima,与(\w+)里的内容相同,这里的$1是获取第一个括号值的意思,也可以获取第二个括号的值 $2