Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: if нужен.
Hello!
On Wed, Aug 15, 2012 at 03:19:19PM +0400, Михаил Монашёв wrote:
> Здравствуйте, Maxim.
>
> >> В конфиге есть строчка.
> >> add_header Content-Disposition 'attachment; filename="bla-bla-bla"';
> >>
> >> Для одних хостов её надо выдавать, а для других не нужно. Хосты
> >> отличаются только этой строчкой в конфиге. Дабы не разводить копипасту
> >> попробовал написать add_header внутри if(). Оказалось, что add_header
> >> в if-е не поддерживается. :-( Других способов, кроме if-а я не смог
> >> придумать.
>
> > Поддерживается. Другой вопрос, что результат может быть не совсем
> > такой, как хотелось бы, см. http://wiki.nginx.org/IfIsEvil.
>
> > Но правильно, IMHO, как-то так:
>
> > map $host $disposition {
> > default "";
> > example.org 'attachment; filename="bla-bla-bla"';
> > }
>
> А как сюда ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> подставить переменную?
>
> Написал вот так:
>
> map $http_host $disposition {
> hostnames;
> default "";
>
> d.* 'attachment; filename="$sitename$filename"';
> }
>
> В результате в заголовке выдалась строка
> Content-Disposition: attachment; filename="$sitename$filename"
>
> а значения переменных не подставились. Через set надо это делать?
Сейчас в правой части map поддерживается только одна переменная,
заменяющая весь результат. Можно сделать как-то так:
map $host $disposition {
default "";
example.org $foo;
}
set $foo 'attachment; filename="$sitename$filename"';
add_header Content-Disposition $disposition;
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|