0

したがって、次のような正規表現ベースのロケーション ルールがあります。

location ~ /(abc.*xyz|def.*zxy|ghk.*qwe)/

正規表現のどの部分が一致したかを確認できますか? URLが次のようなものだった場合の意味

/12abc34/

一致したことを知りたいのですが

.*abc.*

方法はありますか?

AWS の Debian VM で lua-module でコンパイルされた最新の nginx を実行しています。

- - - - - - アップデート - - - - - - -

私は内部の場所を使用することを考えていますが、それは醜いでしょう:

 location ~ /(abc.*xyz|def.*zxy|ghk.*qwe)/
{
    location ~ /(abc.*xyz){...}
    location ~ /(def.*zxy){...}
...
}

現在、60 の正規表現パターンがあります。そのようなアプローチは大丈夫ですか?

4

1 に答える 1

1

正規表現式:は、次の/(.*abc.*|.*def.*|.*ghk.*)/ように短縮できます。

location ~ (abc|def|ghk).*/ { ... }

nginxURI は で始まるため、/をテストする必要はありません/.*

括弧内の正規表現の部分は、ブロック内としてキャプチャされます。$1location

の場合/12abc34/、変数$1は に設定されabcます。

于 2016-11-27T14:21:46.027 に答える