我有xsendfile模块工作,并且使用X-Sendfile头提供文件。但不知何故,任何文件夹中的文件都会被提供 我如何重新限制它,以便我只能为特定文件夹使用X-sendfile标头? 我已经尝试过设置XSendFilePath,如果我使用X-Sendfile头,即使然后该文件夹外的文件也会被发送。
这就是我在virtualhost部分中的内容 XSendFile上 XSendFilePath / home / domain / public_html / files
如果我使用php从/ home / domain / public_html / abc使用X-Sendfile发送文件。它没有任何问题发送。我不想要这个。我只希望X-Sendfile适用于/ home / domain / public_html / files中的文件。
答案 0 :(得分:1)
尝试使用 XSendFilePath 指令
XSendFilePath允许您向某种白名单添加其他路径。允许通过mod_xsendfile提供这些路径中的所有文件。
答案 1 :(得分:0)
XSendFilePath指令在与您所使用的url相关的apache配置文件上下文中非常重要,例如不在您的实际虚拟主机(在您的网址中)未解释的虚拟主机部分中。 可能且在大多数配置中,XSendFilePath用于apache配置文件的主要部分,而不是用于虚拟主机,dolmain等特定上下文中。 这有帮助吗?
XSendFilePath /tmp
<VirtualHost *>
ServerName www.someserver.com
XSendFilePath /home/userxyz
</VirtualHost>
(XSendFilePath的第一次出现->在全球范围内有效,仅当您从域www.someserver.com内调用生成XSendFile标头的php脚本时,第二次出现才起作用)