我正在使用apache2 webserver,我已经安装了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/
答案 0 :(得分:2)
查找mod xsendfile文档。您必须设置允许其提供文件的目录。如果你已经这样做了,那么我会怀疑其他一些问题,例如没有提供符号链接等等。