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?是的,这正是我想要做的。