Set cookie if not already set

I figured out a simple solution so thought to share it ( to get feedback
or
may be to help ). In an earlier discussion I got to know about map and
why
one should avoid to use if an try to use map.

http {

map $cookie_abt $abt {
    default "abt=a;Path=/";
    ~.+$ "";
}

server {
    listen 8081;

    location / {
        add_header Set-Cookie $abt;
        ...
    }
}

}

the map returns “” ( empty ) if cookie is already else the cookie value
(
abt=a;Path=/" ). The good news is add_header Set-Cookie “” does not set
any
cookie and we are good to go :slight_smile:

HTH

Any feedback?

Posted at Nginx Forum:

On Thursday 13 December 2012 22:29:07 amodpandey wrote:

[…]

This one:

map $cookie_abt $abt {
default “”;
“” “abt=a;Path=/”;
}

does the same thing, but without the resource consuming regular
expression.
Moreover, it looks plain and more readable.

wbr, Valentin V. Bartenev

http://nginx.org/en/donation.html