我可以帮助解释nginx server_name
中使用的正则表达式。该指令是:
server_name (?<account>.+)\.mydomain\.com$
虽然我没有得到第一个?
的观点。另外,我如何将其展开以匹配除*.mydomain.com
之外的web3.mydomain.com
。即。
this.mydomain.com
应该匹配,但是:
web3.mydomain.com
不应该匹配。
感谢。
答案 0 :(得分:2)
?<account>
只是naming the capture group的一种方式。因此,内部ngix可能会引用名为“account”的.+
,而不仅仅是“捕获组#1”。
此外,我如何将其展开以匹配除* web3.mydomain.com之外的* .mydomain.com
您可以使用negated lookahead assertion:
server_name (?!web3\.)(?<account>.+)\.mydomain\.com$
(?!web3\.)
部分检查字符串是否以web3.
开头,如果是,则整个表达式不匹配。
但是前瞻不是很有效率。也许您只是将ngix配置为首先查找与web3.mydomain.com
匹配的内容,如果这不匹配,请尝试更通用的表达式?