Regex 将三次nginx重写合并为一次

Regex 将三次nginx重写合并为一次,regex,url-rewriting,nginx,Regex,Url Rewriting,Nginx,是否可以重写此正则表达式,使其适合我下面的所有用例 location ~ \.mp3$ { rewrite "^/(\d{4})/0(\d)/0(\d)/(.*).mp3$" /$1/$2/$3/$4.mp3 permanent; rewrite "^/(\d{4})/0(\d)/(\d{1,2})/(.*).mp3$" /$1/$2/$3/$4.mp3 permanent; rewrite "^/(\d{4

是否可以重写此正则表达式,使其适合我下面的所有用例

        location ~ \.mp3$ {
            rewrite "^/(\d{4})/0(\d)/0(\d)/(.*).mp3$" /$1/$2/$3/$4.mp3 permanent;
            rewrite "^/(\d{4})/0(\d)/(\d{1,2})/(.*).mp3$" /$1/$2/$3/$4.mp3 permanent;
            rewrite "^/(\d{4})/(\d{1,2})/0(\d)/(.*).mp3$" /$1/$2/$3/$4.mp3 permanent;
        }
真实网址:
2012/7/8/piper.mp3

应匹配:

  2012/7/8/piper.mp3
  2012/07/8/piper.mp3
  2012/7/08/piper.mp3
  2012/07/08/piper.mp3

谢谢

您可以尝试:
重写“^/(\d{4})/0?(\d{1,2})/0?(\d{1,2})/0?(\d{1,2})/mp3$”/$1/$2/$3/$4.mp3
这将导致无限的重定向循环,因为它还将捕获
2012/7/8/piper.mp3
,并尝试将其重定向到
2012/7/8/piper.mp3
。抱歉,我对
nginx
了解不多。如果是mod_rewrite,我可以建议使用
RewriteCond%{REQUEST_URI}/0
来避免循环。好吧,忘记重写组合,我们真正想做的是什么,从月份和日期中删除0?是的,这正是我想要做的。