肥宅之家  ⁝︎  登录
Nginx的map
遇到一个问题,我想在nginx中提取文件所在路径,例如:
https://abc.com/file/123/a.txt
Nginx预置变量只有 /file/123/a.txt ,我需要用 map 进行函数映射。
这玩意在网上基本找不到,特别是涉及映射函数式的写法。从鬼佬论坛扒了个例子:
map $uri $capture {
~(?<captured>^/[a-zA-Z0-9]+)[/] $captured;
}
这个map大括号内可以写多条规则,这里只写了一条,含义是:
当 $uri 等于规则中 ~(?<captured>^/[a-zA-Z0-9]+[/])
则 $capture 就等于 $captured
而 $captured 取自表达式中的 <captured>
运行后可以提取路径中的顶级目录,那么照猫画虎,我写出了:
map $uri $dir {
~/(?<captured_dir>.*)/[^/]*$ $captured_dir;
}
补充:location规则本身就可用正则,可以不用map。
C
脑浆物语 霖博客 设计笔记 依萌萌 灰常记忆 乐亦人生 拔剑舞 云破天开 秋日 Yoooo 幻焕 归程 笨猫 云上萝莉 宅区 Pixiv
🍁 STATUS TOS