我在解决方案中看到了几个类似的问题,但它们对我没有用。主要是因为在所有这些中,要删除的部分位于URL的开头,但在我的情况下,它位于中间。 我需要将http://123.123.123.123:9090/v0/A8B9DEBF512F929144257AEE00262C16/ $ File / IMG_8819.jpg等网址转换为http://123.123.123.123:9090/v0/A8B9DEBF512F929144257AEE00262C16/IMG_8819.jpg(不使用$ File /,而不是A8B9DEBF512F929144257AEE00262C16和IMG_8819.jpg可能有数字和字母的任意组合)?
我试过这样的事情
location /v0 {
rewrite ^(v0/[^/]+)/\$File/(.*)$ $1/$2 last;
}
无济于事。但显然它的正则表达式是错误的,因为至少nginx认识到它应该用/ v0 /做一些事情而且我得到404.
答案 0 :(得分:1)
基本上你想要“删除”/$File
。通过捕获前后的所有内容,然后将其放回来做到这一点:
location /v0 {
rewrite ^(.*)/\$File(.*)$ $1$2 last;
}