侧边栏壁纸
  • 累计撰写 262 篇文章
  • 累计创建 139 个标签
  • 累计收到 16 条评论

目 录CONTENT

文章目录

nginx文件下载指定文件名(location)

Sherlock
2017-05-05 / 0 评论 / 0 点赞 / 4226 阅读 / 0 字
温馨提示:
本文最后更新于2023-10-09,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

nginx是支持下载时重命名的,让文件名更加友好。

location /vfs/ {  
    if ($request_uri ~* ^.*\/(.*)\.(.*)(\?n=([^&]+))$) {
      add_header Content-Disposition "attachment;filename=$arg_n.$2";
    }
    alias G:/CloudFileServer/;
    log_not_found off;
    expires 30d;
    break;
}    

if 那一行比较关键,这样配置,保证不传 n 参数的时候,就按原名字保存。不会出现空名字。

nginx location语法

基本语法:location [=|~|~*|^~] /uri/ { … }

  • = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
  • ~ 为区分大小写匹配(可用正则表达式)
  • !~为区分大小写不匹配
  • ~* 为不区分大小写匹配(可用正则表达式)
  • !~*为不区分大小写不匹配
  • ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
示例
location = / {  
 # 只匹配 / 查询。
}

location / {  
 # 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
}

location ^~ /images/ {  
 # 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
}

location ~*.(gif|jpg|jpeg)$ {  
 # 匹配任何已 gif、jpg 或 jpeg 结尾的请求。
}

location ~*.(gif|jpg|swf)$ {  
  valid_referers none blocked start.igrow.cn sta.igrow.cn;
  if ($invalid_referer) {
  #防盗链
  rewrite ^/ http://$host/logo.png;
  }
}
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区