Я пытался сделать с помощью add_header выдачу заголовка
Content-Disposition: attachment; filename="<имя файла>"
и обнаружил несколько интересных эффектов
- add_header не работает в if
Работает, но только в if внутри location, а не внутри сервера:
location / {
if (...) {
add_header ...
}
}
- add_header вообще не хавает переменные.
Узнав что он не работает в if я решил сделать через rewrite. Но тут
выяснилось что
add_header SOME $1
выдаёт SOME $1 в ответе.
add_header SOME $remote_addr
тоже выдает SOME $remote_addr, вместо ожидаемого SOME xx.xx.xx.xx
------------------
В связи с этим вопросы
- сложно ли сделать так чтобы add_header использовал хотя бы переменные?
Нет, не сложно.
- можно ли его сделать, чтобы работал в if?
Кстати с if ещё интересная фишка - не работает limit_rate в нём, а в
примере к rewrite
Пример использования:
if ($slow) {
limit_rate 10k;
break;
}
Что несколько меня смутило :-).
if внутри location.
-----------------
Ещё один вопрос - как конкатенировать строки? Есть ли такая
возможность вообще? Потому что допустим
строку attachment; filename="<имя файла>" нужно склеивать из литералов
и текущей строки... Хотя, возможно, и не стоит превращать конфигурацию
в PHP или PERL, но мне интересно - есть ли вообще такая возможность.
-----------------