【问题标题】: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>