X-Sendfile работает для всех папок, а не только для XSendFilePath

У меня работает модуль xsendfile и файлы обслуживаются с использованием заголовка X-Sendfile. Но каким-то образом файлы из любой папки обслуживаются. Как мне ограничить его, чтобы я мог использовать заголовки X-sendfile только для определенных папок? Я попытался установить XSendFilePath, даже тогда файлы вне этой папки также отправляются, если я использую заголовок X-Sendfile.

Это то, что у меня есть в моем виртуальном хосте XSendFile в разделе XSendFilePath / home / domain / public_html/files

Если я использую php для отправки файлов из / home / domain / public_html / abc, используя X-Sendfile. Отправляется без проблем. Я не хочу это. Я хочу, чтобы X-Sendfile работал только для файлов в / home / domain / public_html/files.

1 ответ

Решение

Попробуйте с директивой XSendFilePath

XSendFilePath позволяет вам добавлять дополнительные пути к какому-то белому списку. Все файлы в этих путях могут обслуживаться через mod_xsendfile.

Важно, чтобы директива XSendFilePath находилась в контексте файла конфигурации Apache, который имеет отношение к URL-адресу, который вы используете, например, не в разделе виртуального хоста, который не интерпретируется из-за вашего фактического виртуального хоста (в вашем URL-адресе). вероятно, и в большинстве конфигураций XSendFilePath используется в главном разделе конфигурационного файла apache, а не в определенном контексте, таком как виртуальный хост, dolmain и т. д. это помогает?

XSendFilePath /tmp
<VirtualHost *>
 ServerName www.someserver.com
 XSendFilePath /home/userxyz
</VirtualHost>

(первое вхождение XSendFilePath -> работает глобально, второе вхождение работает только в том случае, если ваш php-скрипт, создающий заголовок XSendFile, вызывается из домена www.someserver.com)

Другие вопросы по тегам