XSendFile для Apache: как работать с файлами из внешней директории?

Всем доброе утро!

Прочитал статью на Хабре об отдаче файлов с сервера и решил попробовать третий способ из статьи - отдача файлов через модуль XSendFile для Apache.
Система Windows Server 2003, Apache 2.2, PHP 5.3.13

Что сделал:
1. Скачал модуль с сайта, распаковал и закачал файл mod_xsendfile.so в apache/modules
2. Прописал в httpd.conf строчку
LoadModule xsendfile_module modules/mod_xsendfile.so

3. Прописал в .htaccess директории со скриптом, который отдаёт файлы, директиву XSendFile On

Что получилось: всё работает отлично в пределах текущей директории - файлы отлично отдаются через header('X-SendFile: название файла'). Но мне хочется, чтобы файлы скачивались из директории, лежащей вне сервера - через задание абсолютного пути.

Пробовал задавать путь в скрипте:
$makePath = 'C:/путь_к_файлу/файл.txt';
var_dump(file_exists($makePath));
header('X-SendFile: '.$makePath);

var_dump показывает, что файл по этому пути есть и существует - bool(true), но header ничего не отправляет и выводит ошибку "The requested URL was not found on this server."

Возможно ли то, что я хочу сделать? И если да, то где и что надо прописать, чтобы всё заработало?
  • Вопрос задан
  • 9074 просмотра
Решения вопроса 1
Remmi
@Remmi Автор вопроса
Решение нашлось. Нужно прописать в httpd.conf строчку
XSendFilePath "Путь к внешней директории"
И после этого файлы из неё будут нормально скачиваться через абсолютные пути
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы