У меня есть простая веб-страница с div, на котором размещено видео html5. Воспроизводимое видео определяется в GET URL-адреса, например, 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">
, но все равно отказывается загружаться.