4

我正在使用 apache2 网络服务器并且我已经安装了 mod_xsendfile 我有类似的东西:

                header('Content-type: application/zip');
                header('Content-Disposition: attachment; filename="file.zip"');
                //header("X-Accel-Redirect: /file/protected/file.zip"); //for nginx server
                header('X-Sendfile: /protected/file.zip');
                exit();

我在 /etc/apache2/apache2.conf 中启用:

XSendFile on

当我单击 /file/index.php 中的下载按钮时,它给了我错误,index.php 位于 /file/ Not Found

我一开始就尝试过移动header('X-Sendfile: /file/protected/file.zip');,但它是一样的..

当我使用header("X-Accel-Redirect: /file/protected/file.zip");它时它工作但给了我空的 .zip 文件,无论如何它不是 apache2 服务器..

文件只有几 KB

谁知道怎么修它 ?

编辑: 它在error.log中说:给定路径高于根路径:xsendfile:无法找到文件:/protected/file.zip

我设置了 XSendFilePath /protected ,现在的错误是: (2)No such a file or directory: xsendfile cannot open file: /protected/file.zip,referer: http://domain.com/file/

4

1 回答 1

2

查找 mod xsendfile 文档。您必须设置允许从其提供文件的目录。如果您这样做了,那么我会怀疑其他一些问题,例如未提供符号链接等....

于 2012-07-10T13:52:48.607 回答