疑問符「?」と一致させたいのですがnginx.confの場所の正規表現として。
たとえば、一致させたいURLパターンは/ something?foo = 5または/ something?bar = 8(パラメーターのみ変更可能)です。
Nginxは [〜#〜] rcpe [〜#〜] を採用しているため、nginx.confに次のように場所を書き込むことができます。
location ~ ^/something\?.* {
}
上記はURLパターンと一致しません。どうやってやるの?
また、以下は私の期待ではありません。
location ~ ^/something?.* {
}
予想外の/ something_foo_bar_buzzと一致します。
nginxロケーションブロックがクエリ文字列とまったく一致しません。だからそれは不可能です。
ロケーション
このディレクティブは、URIに応じて異なる構成を許可します。
Nginxには、ロケーションブロックが照合される組み込み変数$ uriがあります。たとえば、リクエストを送信します
http://www.example.com/app/login.php?username=xyz&password=secret
$ uri値は次の文字列です。
/app/login.php
query_stringはnginx変数$ argsに格納されます。
username=xyz&password=secret
何かをすること。クエリ文字列、次のようなことができます
if ($args ~ username=xyz) {
# do something for requests with this query string
}
しかし注意してください、 IFは悪です