у меня проблема с защитой папки со статическими файлами с помощью nginx
так что в основном у меня есть корневая папка на nginx для установки:
/home/rise/rises/wwwdir
и защищенная папка:
/home/rise/rises/videop
как мы видим, я переместил эту папку за пределы корневой папки, чтобы запретить / разрешить просмотр только определенных критериев
Когда я впервые выполнил поиск перед публикацией, я прочитал несколько идей о том, что для доступа к папке videop вне корня мне нужно создать псевдоним в nginx conf, подобный этому, который я сделал
и доступ к внутренним
location /videop {
root /home/rise/rises/;
internal;
}
Однако у меня есть проблема на стороне PHP, чтобы загрузить видео …
$aliasedFile = '/videop/5_.m3u8';
$filename = '5_.m3u8';
header("Content-Description: File Transfer");
header("Content-Type application/x-mpegURL ");
header('Content-Disposition: attachment; filename='.$filename.'');
header('X-Accel-Redirect: '. $aliasedFile);
readfile($aliasedFile);
я что-то упустил?
Ваш root
директива имеет запаздывающий /
за которым последуют ведущие /
URL, поэтому используйте:
location /videop {
root /home/rise/rises;
internal;
}
Ваш PHP имеет плохо сформированный заголовок, который должен включать :
после Content-Type
,
PHP не должен включать тело. readfile
неправильно. Вся цель PHP состоит в том, чтобы выпустить внутренний редирект, который перехватывается nginx
, Так что PHP должен вернуться header
только с
Других решений пока нет …