Nginx正则表达式在地图上

时间:2018-04-10 23:47:39

标签: regex dictionary nginx

不是正则表达式的专家,

在nginx项目上工作,我们正在寻找一种方法来映射uri的前两(2)个目录级别

map $uri $my_uri {
                ~^(?<base_uri>.*)/[^/]+$   $base_uri; 
                default                    $uri;
        }

到目前为止,此代码返回base_uri而没有域/服务器或任何文件名

但我需要这个原始请求:

http://example.com/level1/level2/file.ext

http://example.com/level1/level2/level3/file.ext

http://example.com/level1/level2/level3/level4/[...more级别...] / file.ext

只返回前2个级别,正则表达式应该返回

/ 1级/ 2级别

请注意:

  1. 子文件夹(lavel1,lavel2)将是动态文件夹名称,而不是静态文件夹。

  2. nginx的$ url变量不包含原始请求中的协议/服务器/端口。所以对/ level1 / level2 / level3 / [...] / file.ext执行正则表达式

  3. 任何帮助将不胜感激。

0 个答案:

没有答案