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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步