2015-06-26 50 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

謝謝我的朋友! –