有无数教程可以检查cookie是否存在并包含我的内容,在本例中为foobar
。
如果假设mycookie是我想要设置的cookie,我该怎么做呢?
if ($cookie_mycookie does not equal "foobar") {
return 401;
}
我尝试了以下内容无济于事。
if (!$http_mycookie ~* "foorbar" ) {
return 401;
}
谢谢!
答案 0 :(得分:12)
在Nginx中,每个cookie都可以在嵌入变量$cookie_CookieName
中使用。如果您想检查名为mycookie
的Cookie,可以使用此配置代码段执行此操作:
if ($cookie_mycookie != "foobar") {
return 401;
}
从if
命令的nginx manual:
条件可能(其中包括):
使用
=
和!=
运算符将变量与字符串进行比较;使用
~
(对于区分大小写的匹配)和~*
(对于不区分大小写的匹配)运算符将变量与正则表达式匹配。正则表达式可以包含可供以后在$ 1 .. $ 9变量中重复使用的捕获。
还可以使用否定运算符
!~
和!~*
。如果正则表达式包含}
或;
个字符,则整个表达式应包含在单引号或双引号中。