首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx将'*/filename/playlist.m3u8‘重写为*/filename.mp4/index.m3u8’作为重定向。

Nginx将'*/filename/playlist.m3u8‘重写为*/filename.mp4/index.m3u8’作为重定向。
EN

Stack Overflow用户
提问于 2016-09-07 02:00:44
回答 1查看 2.9K关注 0票数 1

我正在尝试从Wowza迁移到Debian上的Nginx上建立VOD,通过Kaltura的nginx模块,一切都很好,除了现有的VOD存档仍然是req。通过旧的网址..。因此,重写规则是合理的,但由于这样做是一个不好的做法,它应该是一个nginx重定向‘返回301’。

以前对VOD存档中的文件使用的Wowza URL格式是:

代码语言:javascript
复制
http://<server-address>:<rtmp-port>/vod/<file-name>/playlist.m3u8

新的URL格式必须是:

代码语言:javascript
复制
http://<server-address>/vod/<file-name><file-extension>/index.m3u8

虽然我对重写规则知之甚少,但现在我已经找到了一个临时解决方案:

代码语言:javascript
复制
location ~ playlist.m3u8$ {
    rewrite ^(.*)/playlist.m3u8$ $1.mp4/index.m3u8;
}

但我不知道这将如何转化为一个有效的重定向规则(‘返回301 '),或是否有可能有一个将普遍工作,而不指定每个文件名在视频点播文件夹。

虽然我是这样做的,如果有一个更简单/更短的URL来访问新添加的文件,那就更好了。

代码语言:javascript
复制
http://<server-address>/vod/<file-name>.m3u8

我认为应该执行的重写规则是两个重写规则的组合,类似于:

代码语言:javascript
复制
location ~ playlist.m3u8$ {
    rewrite ^(.*)/playlist.m3u8$ $1.mp4/index.m3u8;
}
location ~ index.m3u8$ {
    rewrite ^(.*).m3u8$ $1.mp4/index.m3u8;
}

但我担心它会针对被重写的URL并导致HTTP错误404.避免这样做的建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-07 02:10:49

试试这个:

代码语言:javascript
复制
rewrite ^http://(.*?):\d+/vod/(.*?)/.*?\.(.*)$ http://$1/vod/$2.mp4/index.$3

Regex101

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39360194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档