2015-06-26 79 views
3

上有检查,如果一个cookie存在并包含我的内容,在这种情况下foobar无数的教程。检查Cookie不包含指定的内容NGINX

假设mycookie是我想设置的cookie,我该怎么做以下操作。

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

我曾尝试以下无济于事。

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

谢谢!

回答

8

在Nginx的,每个Cookie是嵌入式可变$cookie_CookieName可用。

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

从nginx的manualif命令:如果您想用的名字mycookie检查的cookie,你可以使用这个配置片断做

的条件也许(其中包括):

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

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

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

  • 负运营商!~!~*也可提供。如果正则表达式包含};字符,则应将整个表达式括在单引号或双引号中。

+0

谢谢我的朋友! –