不是正则表达式的专家,

在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 levels ...] / file.ext

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

/ 1级/级别2

请注意:

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

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

任何帮助将不胜感激 .