我有以下网址:
http://example.com/dr/2015/10/pic.jpg
其中 2015/10/pic.jpg 是动态的:2015 是年份,10 是月份数,pic.jpg 是文件名。每次发送图像时,都会创建年份和月份文件夹作为当前日期。
我想删除 url 的节点“dr”,如下例所示:
http://example.com/2015/10/pic.jpg
我发现了这个问题,它最接近我需要的:https://superuser.com/questions/435916/nginx-rewrite-rule-to-remove-path-node
答案1
试试这个。此规则将内部将 /2015/10/pic.jpg 重定向到 /dr/2015/10/pic.jpg,但 URL 将为 /2015/10/pic.jpg
rewrite ^/(.*)/(.*)/pic.jpg dr/$1/$2/pic.jpg last;
答案2
你可以直接把它添加到你的try_files
。这是最简单的,而且性能比 更好rewrite
。例如:
try_files /dr$uri $uri ....the rest of it...
答案3
在以前的答案的帮助下,我得出了以下结果:
location ~ /dr {
#empty
}
location / {
rewrite ^/(.*)/(.*)/(.*) /dr/$1/$2/$3 last;
}
它能很好地满足我的需要。