我想允许某些导演的目录列表,但我想阻止任何下载。
基本上dir结构是
Nzbs - > Alt.binaries.mp3 - > Alt.binaries.tv - > Alt.binaries.multimedia
子目录中的文件是.zip文件。
我希望用户能够查看子目录的内容,但不允许任何下载。
我在网上搜索但无法找到任何相关信息。
在预先感谢您的帮助。
答案 0 :(得分:1)
有几种方法可以做到这一点
第二个和第三个选项将要求您编写脚本以列出文件夹内容。您可以在documentation of PHP
中找到相当简单的脚本<?php
$d = dir("/etc/php5");
echo "Handle: " . $d->handle . "\n";
echo "Path: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
echo $entry."\n";
}
$d->close();
?>
第三个选项需要Web服务器上的最小权限。它的工作原理如下:
第三个选项(mod重写)基本相同,但文件夹名称由mod重写模块给出(重写规则将www.yourdomain.com/uploads/xxx转换为www.yourdomain.com/folder.php ?夹= XXX)
总结:
第一个选项禁止通过将文件名重定向到某个文件(例如yourdomain.com/403.php)来下载文件名。它依靠Web服务器来显示列表,让他处理其余的事情。
第二种和第三种方法(可能由c组合)创建自己的目录列表。如果您想在其中应用某些布局,这是唯一的选择。建议的方法是将文件夹放在文档根目录之外,这样即使您的脚本失败,用户也无法下载任何文件(对于Web服务器,不会有这样的文件,因为它们在文档根目录之外)。您必须确保不允许用户在您的服务器上显示任何文件夹(这很危险)。
答案 1 :(得分:0)
使用RedirectMatch语句阻止对与正则表达式匹配的任何目录或文件的访问,并将其发送到某个URL。最好将它们发送到他们目前正在浏览的网址。
RedirectMatch regex url