【问题标题】:How to allow downloading files with PHP, but deny direct access to directory listings如何允许使用 PHP 下载文件,但拒绝直接访问目录列表
【发布时间】:2026-01-13 22:45:02
【问题描述】:

我在我的服务器上使用 Apache,我想允许我的访问者免费下载资源。但是,为了保留一点带宽,我想拒绝直接访问资源的根文件夹,如下所示:

www.myhost.com/resources/file.wav

如果访问者从 URL 中删除 file.wav,他们可以立即访问所有声音,因此我会让人们疯狂下载。我不想那样。

如何阻止用户进入该根目录和任何子文件夹?

【问题讨论】:

  • 查看右侧的“相关”问题列表,我看到了多个答案

标签: php apache directoryindex


【解决方案1】:

最简单的方法是在文件夹中放置一个 index.html 文件并将其权限设置为 700,而不用弄乱.htaccess(尽管这是个好主意)。

如果您只想关闭目录列表,您可以使用以下命令创建一个 htaccess 文件:

<Directory /path/to/directory>
   Options -Indexes
</Directory>

如果你想拒绝访问子目录,你可以这样:

<Files subdirectory/*>
    deny from all
</Files>

如果您只想允许访问 .wav 文件,您可以这样做:

<Files *.wav>
    allow from all
</Files>

【讨论】: