【问题标题】:Check if cookie does NOT contain specified content NGINX检查 cookie 是否不包含指定的内容 NGINX
【发布时间】:2015-09-13 11:49:20
【问题描述】:

有无数关于检查 cookie 是否存在并包含我的内容的教程,在本例中为 foobar

假设 mycookie 是我想要设置的 cookie,我该如何执行以下操作。

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

我尝试了以下方法无济于事。

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

谢谢!

【问题讨论】:

    标签: nginx configuration config vhosts


    【解决方案1】:

    在 Nginx 中,每个 cookie 都在嵌入变量 $cookie_CookieName 中可用。如果你想检查名称为mycookie 的cookie,你可以使用这个配置sn-p:

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

    来自 nginx manualif 命令:

    一个条件可能(等等):

    • 使用=!= 运算符比较变量与字符串;

    • 使用~(用于区分大小写的匹配)和~*(用于不区分大小写的匹配)运算符将变量与正则表达式匹配。

    • 正则表达式可以包含可供以后在 $1..$9 变量中重用的捕获。

    • 也可以使用负运算符 !~!~*。如果正则表达式包含}; 字符,则整个表达式应该用单引号或双引号括起来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多