四时宝库

程序员的知识宝库

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

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接