Re: Странное поведение map

Валентин Бартенев vbart at nginx.com
Sun Aug 17 11:50:10 UTC 2014


On Friday 15 August 2014 19:21:34 mEajof wrote:
> Столкнулся сегодня с тем, что не могу вывести содержание переменной,
> полученной из регекспа.
> Пример конфига:
> 
> map $uri $header_two {
>     default "";
>     ~/selfy/(?<fname>.*.+\.(mp4|m4v|avi|mp3|3gp|flv|mpeg|ogg|wmv))
> 'attachment; filename="$fname"';
> }

$uri в map - верный признак того, что делаете что-то неправильно.

Для разделения конфигурации по $uri специально существует директива
location - ей и нужно пользоваться.

> 
> add_header Content-Disposition $header_two;
> 
> Пытался так же с
> "attachment; filename=\"$fname\"";
> 
> и даже просто "'' $fname"; - в хэдер сразу вываливается название переменной,
> вместо имени.
> 
[..]

Из документации по map:

  "В качестве результирующего значения можно указать строку
   или другую переменную (0.9.0)."

Возможности использовать строку с переменными директива не
предоставляет, соответственно ваша строка интерпретируется
как строка.

--
Валентин Бартенев


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