nginx sever_name正则

nginx server_name 规则:

1.确切的server_name匹配

例如:

server {
    listen       80;
    server_name  www.luwen.cc luwen.cc;
    ...
}

2.以*通配符开始的最长字符串

server {
    listen       80;
    server_name  *.luwen.cc;
    ...
}

3.以*通配符结束的最长字符串

server {
    listen       80;
    server_name  www.*;
    ...
}

这两条有两个特别要注意的事项:

 通配符名字只可以在名字的起始处或结尾处包含一个星号,并且星号与其他字符之间用点分隔。所以,“www.*.luwen.cc”和“w*.luwen.cc”都是非法的。

4.匹配正则表达式

 

server {
    listen       80;
    server_name  ~^(.+)-www\.luwen\.cc$;
    ...
}

 

 

 

server_name正则表达式应用:

    server_name指令一项很实用的功能便是可以在使用正则表达式的捕获功能.nginx使用的正则表达式兼容PCRE。为了使用正则表达式,虚拟主机名必须以波浪线“~”起始否则该名字会被认为是个确切的名字:

如上4

    如果表达式含星号,则会被认为是个通配符名字(而且很可能是一个非法的通配符名字)。不要忘记设置“^”和“$”锚点,语法上它们不是必须的,但是逻辑上是的。同时需要注意的是,域  名中的点“.”需要用反斜线“\”转义。含有“{”和“}”的正则表达式需要被引用

如上4

 

posted @ 2018-01-29 11:54  行知散人  阅读(6726)  评论(0编辑  收藏  举报