web-dev-qa-db-ja.com

Cookieに指定されたコンテンツが含まれていないかどうかを確認しますNGINX

Cookieが存在し、私のコンテンツ(この場合はfoobar)が含まれているかどうかを確認するためのチュートリアルは無数にあります。

Mycookieが設定したいcookieであると仮定して、次の方法を実行します。

if ($cookie_mycookie does not equal "foobar") {
  return 401;
}

私は無駄に次のことを試みました。

if (!$http_mycookie ~* "foorbar" ) {
  return 401;
}

ありがとうございました!

8
blue ice

Nginxでは、各Cookieは埋め込み変数$cookie_CookieNameで使用できます。 mycookieという名前のCookieを確認する場合は、次の構成スニペットを使用して確認できます。

if ($cookie_mycookie != "foobar") {
  return 401;
}

Nginxから manualifコマンドの場合:

多分(とりわけ)条件:

  • =および!=演算子を使用した変数と文字列の比較。

  • ~(大文字と小文字を区別するマッチングの場合)および~*(大文字と小文字を区別しないマッチングの場合)演算子を使用した正規表現に対する変数のマッチング。

  • 正規表現には、後で$ 1 .. $ 9変数で再利用できるようにするキャプチャを含めることができます。

  • 負の演算子!~および!~*も使用できます。正規表現に}または;文字が含まれている場合は、式全体を一重引用符または二重引用符で囲む必要があります。

14
Marki555