Answers:
选项-索引应该可以防止目录列表。
如果您使用的是.htaccess文件,请确保您在主apache配置文件中至少具有“ allowoverride选项”设置。
rewrite
模块,并将目录设置为AllowOverride All
。如果所有内容都已经到位,并且您的评论是正确的,那么我必须非常幸运,无法Options All -Indexes
在不同服务器上的每个项目中工作。
如果Options -Indexes
没有按照Bryan Drewery的建议工作,则可以编写一个递归方法来创建空白的index.php文件。
将此放置在您要保护的基本文件夹中,您可以将其命名为任意名称(我建议使用index.php)
<?php
recurse(".");
function recurse($path){
foreach(scandir($path) as $o){
if($o != "." && $o != ".."){
$full = $path . "/" . $o;
if(is_dir($full)){
if(!file_exists($full . "/index.php")){
file_put_contents($full . "/index.php", "");
}
recurse($full);
}
}
}
}
?>
这些空白的index.php文件可以轻松删除或覆盖,并且可以防止目录列出。
选项-索引为受保护的目录返回403禁止的错误。通过在htaccess中使用以下重定向,可以实现相同的行为:
RedirectMatch 403 ^/folder/?$
这将为example.com/folder/返回禁止的错误。
您也可以使用mod-rewrite禁止请求文件夹。
RewriteEngine on
RewriteRule ^folder/?$ - [F]
如果您的htaccess位于您要禁止的文件夹中,请将RewriteRule的模式从^ folder /?$更改为^ $。
Options All -Indexes
没有几个答案!