首页 > 解决方案 > 删除 nginx 中的第一个文件夹

问题描述

我有一些网址,例如:

http://example.com/username/file.zip
http://example.com/username/videos/aaa.avi
http://example.com/username/videos/abc/asdfdef/aaa.avi

文件的真实路径是:

/file.zip
/videos/aaa.avi
/videos/abc/asdfdef/aaa.avi

所以基本上我需要删除我尝试使用此重写规则的 URL 中的第一个文件夹:

rewrite ^/.*/(.*)$ /$1 last;

但它删除了所有文件夹并 grep 只是文件名,它只适用于第一个 URL,其余的我得到 404 错误

- PS:用户名可以是任何东西

标签: regexnginxurl-rewriting

解决方案


我没有测试它,但基于我认为 nginx 使用 pcre 库

rewrite ^/.*?/(.*)$ /$1 last;

会工作。

.*?匹配零和无限次之间的任何字符,尽可能少,根据需要扩展(惰性)


推荐阅读