我可以得到一些帮助来解释 nginx 中使用的正则表达式吗server_name
?该指令是:
server_name (?<account>.+)\.mydomain\.com$
我不明白第一个的意思?
。另外,我如何扩展它以匹配*.mydomain.com
除了web3.mydomain.com
. IE
this.mydomain.com
应该匹配,但是:
web3.mydomain.com
不应该匹配。
谢谢。
?<account>
只是命名捕获组的一种方式。因此,在内部 ngix 可能会.+
使用名称“account”而不是“capture group #1”来引用。
另外,我如何扩展它以匹配 *.mydomain.com 除了 web3.mydomain.com
您可以使用否定的前瞻断言:
server_name (?!web3\.)(?<account>.+)\.mydomain\.com$
该(?!web3\.)
部分检查字符串是否以 if 开头,web3.
如果是,则整个表达式不匹配。
但是前瞻不是很有效。也许您只是将 ngix 配置为首先查找匹配项,web3.mydomain.com
如果不匹配,请尝试更通用的表达式?