将URL重写为GET中断HTML5视频

问题描述 投票:0回答:1

我有一个简单的网页,其中包含一个托管html5视频的div。播放的视频是在URL的GET中定义的,例如example.com/v?v_id=test会将test.mp4放入块中为了使操作更简单,我希望能够键入example.com/v/test因此,我已将此位置块放置在网站的Nginx conf中:

    location /v/ {
        rewrite  ^/v/(.*)$ /v?v_id=$1 last;
    }

最重要的是,我想要视频下方的下载按钮,该按钮将直接强制下载视频。所以在上面的位置块下面,我有这个:

    location ~* /video/(.+\.mp4)$ {
        add_header Content-disposition "attachment; filename=$1";
    }

现在,当我直接转到example.com/v/test时,视频无法加载,警告我没有支持的格式和MIME类型但是,如果我转到example.com/v?v_id=test,一切都会正常进行。

这里可能是什么问题?

在GET上做了一些验证后,这是我的视频HTML:

<div class="video-container">
    <video controls preload='auto'>
        <source src='video/<?php echo $v_id ?>.mp4' type='video/mp4'>
    </video>
    <a href="<?php echo("/video/".$v_id.".mp4") ?>"" class="download-btn">
        Download
    </a>
</div>

并且出于故障排除的考虑,$v_id已正确解析并以页面的HTML格式传送,看起来像<source src="video/GH5R2.mp4" type="video/mp4">,但仍拒绝加载。

php nginx nginx-location
1个回答
0
投票

发布后很快我意识到了我的问题,标记的src缺少/,使路径相对。我不知道我怎么想念它。我一定太专注于思考这是一个Nginx问题,而不是一个简单的HTML问题。

© www.soinside.com 2019 - 2024. All rights reserved.