nginx 指向一个文件夹_nginx文件下载指定文件名(location)

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

```bash

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 如果路径匹配那么不测试正则表达式。

######示例

```bash

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;

}

}

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值