我有一个简单的网页,该网页的div托管html5视频。
播放的视频是在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">
,但仍拒绝加载。