Nginx 对某些文件使用Content-Dispositions
server { listen *:80; server_name www.example.com; rewrite ^(.*) http://example.com $1 permanent; } server { listen *:80; server_name example.com; # Static directory location /data/ { autoindex on; alias /data/; expires 30d; if ( $request_filename ~ "^.*/(.+\.(zip|tgz|iso|gz))$" ){ set $fname $1; add_header Content-Disposition 'attachment; filename="$fname"'; } } root /srv/www/example.com; access_log /srv/www/example.com/logs/access.log; error_log /srv/www/example.com/logs/errors.log; # Redirect server error pages to the static page /50x.html error_page 500 502 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } }
I believe your $request_filename should actually contain additional parentheses, like "^.*/(.+\.(zip|tgz|iso|gz))$". Otherwise it only matches zip files.
You must put a space after "if" :
if ( " ){
set $fname $1;
add_header Content-Disposition 'attachment; filename="$fname"';
}
You dont need to specify the filename. You can just do:
set $fname $1;
add_header Content-Disposition 'attachment; filename="$fname"';
}
You dont need to specify the filename. You can just do:
location /attachments/ { add_header Content-Disposition 'attachment'; proxy_pass http://localhost:8080/; }
the filename is to pin down to only specified files of choice. Not all file types!
固定到所选文件,不是所有的文件类型。
Afaik you still don't need this complex filename stuff.
location /data/ { autoindex on; alias /data/; if ( $request_filename ~* .*\.(zip|tgz|iso|gz) ){ add_header Content-disposition "attachment"; } }
doing the same by decreased complexity (and note ~* for case insensitivity). Or am I wrong?
https://gist.github.com/un33k/7119264
https://gist.github.com/un33k/7119264
阅读量: 542
发布于:
修改于:
发布于:
修改于: