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."

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽