使用nginx的rewrite功能搭建文件服务

本文详细介绍了Nginx的rewrite功能,包括如何通过正则表达式隐藏服务器文件的真实路径,实现URL的规范化和伪装,以及在企业中常见的应用场景,如调整URL、伪装动态地址为静态地址和域名跳转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:为了服务器文件的安全,不能将服务器的文件保存路径设计暴露出来,可以使用nginx的rewrite功能隐藏文件的真实路径

1.例子

rewrite “/pic/([0-9]{2})-([0-9]{2})-([0-9]{1,2})-C-([0-9]*).(png|gif|jpg|jpeg)$” /storage/bidding/20$1-$2/$3/Certification/$4.$5 last;

2.说明:

rewrite为固定关键字,表示开始进行rewrite匹配规则

第一个regex部分是 ([0-9]{2}) ,这是一个正则表达式,匹配域名后面的路径地址,对应后面的第一个参数$1

replacement部分 $1,是取自regex部分()里的内容。匹配成功后跳转到的路径。

flag部分 last标识重写匹配结束。

3.regex 常用正则表达式说明字符描述

\ 将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$”

^ 匹配输入字符串的起始位置

$ 匹配输入字符串的结束位置

* 匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”

+ 匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“oll”,但不能匹配“o”

? 匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,"?"等效于"{0,1}"

. 匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式。

(pattern) 匹配括号内pattern并可以在后面获取对应的匹配,常用$0...$9属性获取小括号中的匹配内容,要匹配圆括号字符需要\(Content\)

4.rewrite 广泛的应用场景

Nginx的rewrite功能在企业里应用非常广泛:

可以调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求。

为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务。

网址换新域名后,让旧的访问跳转到新的域名上。例如,访问京东的360buy.com会跳转到jd.com

根据特殊变量、目录、客户端的信息进行URL调整等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值