检查 cookie 是不是不包含指定的内容 NGINX

Posted

技术标签:

【中文标题】检查 cookie 是不是不包含指定的内容 NGINX【英文标题】: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;

谢谢!

【问题讨论】:

【参考方案1】:

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

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

来自 nginx manual 的 if 命令:

一个条件可能(等等):

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

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

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

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

【讨论】:

以上是关于检查 cookie 是不是不包含指定的内容 NGINX的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 cookie 是不是存在?

如何检查字符串内容中是不是包含任何 HTML?

检查 Array 的元素是不是包含指定的 String

检查 Sql Server Compact Database(.sdf) 是不是包含未连接的内容

如何检查字符串是不是包含子字符串并且在 Bash 中不包含 [重复]

excel中如何检查一列中的内容是不是包含在另一个文档的一列中。