Re: try_files и if

Maxim Dounin mdounin at mdounin.ru
Tue Feb 12 10:41:08 UTC 2013


Hello!

On Tue, Feb 12, 2013 at 10:10:36AM +0200, Roman wrote:

> Добрый день,
> у меня имеется nginx version: nginx/1.0.12 и
> я конечно же читал сей замечательный документ :
> http://wiki.nginx.org/IfIsEvil
> 
> Но очень хочется такого функционала:
> 
> 
>     map $http_referer $flag {
>         default 0;
>         "~*domain.com" 1;
>         ...
>         ...
>         }
> 
> ...
> 
>         location ~* ^/([a-z0-9\-]+)/ {
>            try_files     $uri $uri/ /catalog/$1/best/index.html =404;
>            root /home/wwwroot;
>            if ($flag)
>            {
>                add_header Set-Cookie ...;
>            }
> 
>         }
> Но естественно такой вариат с try_files & if не работает, сломал
> голову всю и никак не могу придумать альтернативного решения,
> может кто подскажет какую идею?

Сделать map вида:

    map $flag $cookievalue {
        0     "";
        1     "...";
    }

И дальше add_header безусловно:

    add_header Set-Cookie $cookievalue;

Если в результате map'а в переменной $cookievalue получится пустая 
строка - соответствующий заголовок клиенту отослан не будет, если 
получится непустая - будет, что, насколько я понимаю, и требуется 
в задаче.

-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru