Nginx的重写规则问题,以消除URL的结束

我需要从www.foo.com/bar/rab/video.mp4删除.mp4

所以我留下了www.foo.com/bar/rab/video

到目前为止,我有

 location ~* ^/bar/rab/(.*)$ { rewrite ^/bar/rab/(.*)$/$(.mp4) /$1/$2 break; proxy_pass https://foo.s3.amazonaws.com; } 

不过我觉得我错了,谁能请解释和帮助我

🙂

怎么样:

 location ~* ^/bar/(.*).mp4$ { rewrite ^/bar/(.*).mp4 /bar/$1 break; proxy_pass https://foo.s3.amazonaws.com; } 

这里有一些关于Perl兼容的正则expression式,这是nginx使用的:

http://marvin.cs.uidaho.edu/~heckendo/CS445/regex.html

这是一个正则expression式testing器:

http://www.regextester.com/

所以如果你在正则expression式字段(重写的第一部分)中贴上“^ / bar /(.*).mp4”,并在文本字段中加上“/bar/rab/foo.mp4”,然后把“ / bar / $ 1“replace字段(重写的第二部分),你会得到”/ bar / rab / foo“。