Nginx 重写规则问题删除 URL 结尾

Nginx 重写规则问题删除 URL 结尾

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

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

到目前为止

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

然而我认为我错了,有人可以解释并帮助我吗?

:)

答案1

怎么样:

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

以下是 nginx 使用的 Perl 兼容正则表达式的一些内容:

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

这是一个正则表达式测试器:

http://www.regextester.com/

因此,如果您在正则表达式字段(重写的第一部分)中粘贴“^/bar/(.*).mp4”,并在文本字段中输入“/bar/rab/foo.mp4”,然后在替换字段(重写的第二部分)中输入“/bar/$1”,您将获得预期的“/bar/rab/foo”。

相关内容