web-dev-qa-db-ja.com

nginxでquery_stringパラメータをどのようにチェックしますか?

URLにqパラメータが入力された場合、nginx設定テストで条件をどのように記述できますか?

これは機能しません:

 if ($arg_q) {
   return 301 "/someurl";
 }

次のようなURLをキャッチします

/search?entered_search=1&q=123

しかし、それはのようなURLをキャッチしません

/search?entered_search=1&q= 
1
astropanic

このようなものがうまくいくかもしれません。 「クエリ文字列にシーケンス 'q ='が含まれている場合、リダイレクトを送信します」と表示されます。少なくともそれは私が言っていることだと私は思う、私は正規表現が得意ではない。私はそれをテストし、それが機能しましたが、あなたが得ることができるクエリ文字列によっては副作用があるかもしれません。

if ($query_string ~ q=) {
  return 301 "https://www.example.com";
}

この答え はそれを解決するのに役立ちました。

1
Tim