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
阅读量: 996
发布于:
修改于:
发布于:
修改于: