add_header Content-Type application/octet-stream;
}
if ($slownet) {
limit_rate 3k;
}
т.е. /dir/file.3pm --> /dir/file.mp3
Есть желание выдавать оригинаьное имя файла в заголовке, для этого прописываю
его в rewrite,
но заголовок не возвращается.
Однако если зайти по адресу / то предлагает скачать страницу и выдает
заголовок
content-disposition: attacmhent; filename=.
Где грабли?
Проблема в том, что большинство директив статические (декларативные),
а исполняются только директивы ngx_http_rewrite_module.
http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#internals
В данном случае происходит следующее:
Если файла нет, то выполяняется rewrite и опять ищется location (из-за last).
В новой конфигурации директив add_header уже нет.
Вот такое должно работать:
location ~ /$ {
root html;
index index.html index.htm;
autoindex on;
}
location / {
root html;
index index.html index.htm;
uninitialized_variable_warn off;
if (!-f $request_filename) {
rewrite ^(/.+)?/([^/]+)\.(.)(.)(.)(.?)$ /$1/$2.$6$5$4$3;
set $name $2.$6$5$4$3;
}
if ($slownet) {
limit_rate 3k;
}
add_header Content-Disposition 'attachment; filename=$name';
add_header Content-Type application/octet-stream;
}
Игорь Сысоев
http://sysoev.ru