0
で、私はnginxの正規表現のための正規表現.2語を除く。 nginxのサーバー
に名前が-testing
か
-staging
含まれている場合以外のすべてを一致させることができます
1を3台のサーバーを作成しようとしています。
-testing
のすべてとserver_nameに一致するもの。 サーバ名に-staging
のすべてと一致するもの。
最後の2つは問題ではありません。それらは働いている。私は最初の人と闘っているだけです。ここで
は、私が試した正規表現です:~^.*(?!(-testing)|(-staging))\.example\.lh$
https://regex101.com/r/m8vXsL/1(チルダを削除)
しかし、それはまだそれらの単語を含むSERVER_NAMESと一致します。どんな助けもありがとう。
もし 'nginx'がそれをサポートしていれば(あなたの例ではpcreを選択しましたので、そう仮定します)、' <'を挿入するだけで、代わりに否定的な裏返しを得ることができます。 \\。*(?<!( - testing)|(-staging))\。example \ .lh $ ' – ClasG
これは完全に機能しました。はいnginxはpcreをサポートしています。 'nginxで使用される正規表現は、Perlプログラミング言語(PCRE)で使用されるものと互換性があります。正規表現を使用するには、サーバ名がチルダ文字で始まる必要があります。 ' –
' '.example.lh'の直前だけではなく、' 'どこでも*' *表示することはできません。ルックアヘッドチェックを使用してください - ['^(?:。* - (?:testing | staging))。* \。example \ .lh $'](https://regex101.com/r/cPGIQE/1)。 –