X-Sendfile适用于所有文件夹,而不仅仅适用于XSendFilePath

时间:2017-03-08 10:41:45

标签: php apache x-sendfile

我有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中的文件。

2 个答案:

答案 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脚本时,第二次出现才起作用)