【问题标题】:How do I provide a local download link to files denied by htaccess如何为 htaccess 拒绝的文件提供本地下载链接
【发布时间】:2014-02-03 13:27:14
【问题描述】:

登录网站管理区域的用户需要能够下载其他管理员之前上传的文件。不允许公开访问这些文件。

文件保存在名为 upload-files 的目录中,该文件夹中有一个 .htaccess:

<FilesMatch "\.(pdf|doc|docx|ods|xls|xlsx|ppt)$">
    Order deny,allow
    Deny from all
    Allow from localhost
</FilesMatch>

这似乎工作正常.. 公众无法链接到文件。问题是登录的管理员也无法链接到他们,因为:

<a href"uploaded-files/abc.pdf">download</a>

点击时会出现 403 禁止。所以似乎服务器上的 php/html 文件也无法访问这些文件。

我做错了什么?肯定有一种简单的方法可以让服务器上的人通过链接下载文件,但仍然拒绝访问公共文件?

我已尝试将文件保存在 public_html 之外,但我也无法提供指向该位置的链接:(

【问题讨论】:

    标签: .htaccess download localhost


    【解决方案1】:
    1. 您应该将这些文件保存在您的 DOCUMENT_ROOT 之外。
    2. 下载链接应通过 PHP 文件,例如&lt;a href"http://domain.com/download-files.php?file=abc.pdf"&gt;download abc.pdf&lt;/a&gt;
    3. php 代码可以检查身份验证部分和允许的主机等。如果所有验证都通过,则将具有正确 CONTENT 类型的 PDF 内容返回给浏览器。

    【讨论】:

    • 谢谢,download.pdp 可以访问文档根目录之外的文件,因为它使用 readfile 而不是
    猜你喜欢
    • 2011-05-30
    • 2013-08-22
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2017-10-07
    • 1970-01-01
    相关资源
    最近更新 更多