if нужен.

Михаил Монашёв postmaster at softsearch.ru
Tue Aug 14 20:05:20 UTC 2012


Здравствуйте.

В конфиге есть строчка.
add_header Content-Disposition 'attachment; filename="bla-bla-bla"';

Для  одних  хостов  её  надо  выдавать,  а  для других не нужно. Хосты
отличаются только этой строчкой в конфиге. Дабы не разводить копипасту
попробовал  написать add_header внутри if(). Оказалось, что add_header
в  if-е  не  поддерживается. :-( Других способов, кроме if-а я не смог
придумать.

Конфиг для каждого хоста выглядить примерно так:

        server {
                listen          1.2.3.4:80;
                server_name     site1.ru site2.ru;

                include valid_referrers.conf;

                много строчек

                location ~* "^/([^/]+)/(.*)" {
                    здесь для site2.ru надо выдавать Content-Disposition
                    
                    много строчек
                }

                много строчек
        }
}

Я  понимаю,  что  инклуды можно использовать или генерить конфиг. Но в
данном  случае  как  красиво инклуды сделать? Каждые "много строчек" в
отдельный инклуд - тогда локейшны сервера размазаны по разным файлам и
по  разным  уровнями  инклудинга.  Всё  что выше и всё что ниже "здесь
иногда надо выдавать Content-Disposition" - совсем не правильно.

А  писать  генерилку  только  чтобы  этот  один  единственный if в неё
вынести, тоже как-то не очень.

Идеальным  решение  был  бы  if,  который бы избавил от копипасты, чем
упростил бы поддержку кода.

-- 
С уважением,
 Михаил                          mailto:postmaster at softsearch.ru



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