-1

nginx で使用される正規表現を説明する助けを得ることができますかserver_name? ディレクティブは次のとおりです。

server_name (?<account>.+)\.mydomain\.com$

しかし、私は最初の要点を理解していません?*.mydomain.comまた、これを展開してexceptに一致させる方法web3.mydomain.com。IE

this.mydomain.com

一致する必要がありますが、次のとおりです。

web3.mydomain.com

一致してはいけません。

ありがとう。

4

1 に答える 1

2

?<account>は、キャプチャ グループに名前を付ける方法にすぎません。そのため、内部的に ngix はおそらく.+「キャプチャ グループ #1」ではなく、「アカウント」という名前で を参照します。

また、web3.mydomain.com を除く *.mydomain.com に一致するようにこれを展開する方法

否定された先読みアサーションを使用できます。

server_name (?!web3\.)(?<account>.+)\.mydomain\.com$

この(?!web3\.)部分は、文字列が if so で始まるかどうかをチェックしますweb3.。式全体が一致しません。

しかし、先読みはあまり効率的ではありません。最初に一致を探すように ngix を設定しweb3.mydomain.com、これが一致しなかった場合は、より一般的な表現を試してください。

于 2013-03-03T17:47:25.607 に答える