我有一个文件夹,例如:/public_html/Davood/
和文件夹中的子文件夹太多,例如:/public_html/Davood/Test1/
,/public_html/Davood/Test1/Test/
,/public_html/Davood/Test2/
,...
我想在/public_html/Davood/
中添加一个htaccess文件要拒绝/Davood
和子文件夹中的目录列表,这可能吗?
答案 0 :(得分:102)
选项-Indexes 应该可以阻止目录列表。
如果您使用的是.htaccess文件,请确保主apache config file中至少有“allowoverride options”设置。
答案 1 :(得分:52)
答案 2 :(得分:33)
如果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文件可以轻松删除或覆盖,它们会使您的目录无法列表。
答案 3 :(得分:15)
要显示Forbidden错误,请在.htaccess文件中包含以下行:
Options -Indexes
如果我们想索引我们的文件并显示一些信息,请使用:
IndexOptions -FancyIndexing
如果我们想要某个特定的扩展名不显示,那么:
IndexIgnore *.zip *.css
答案 4 :(得分:3)
bc > temp.txt
我必须尝试创建.htaccess文件,即我想要禁止目录索引列出的当前目录。但是,抱歉,我不知道.htaccess代码中的递归。
试试吧。
答案 5 :(得分:3)
Options -Indexes 对我来说非常合适,
这是public String getInit() {
return "" + firstName.charAt(0) + middleName.charAt(0)
+ lastName.charAt(0);
}
文件:
.htaccess
之后:
答案 6 :(得分:1)
选项-Indexes 会为受保护的目录返回403 forbidden错误。通过在htaccess中使用以下重定向可以获得相同的行为:
RedirectMatch 403 ^/folder/?$
这将为 example.com/folder / 返回禁用错误。
您还可以使用mod-rewrite禁止对文件夹的请求。
RewriteEngine on
RewriteRule ^folder/?$ - [F]
如果您的htaccess位于您要禁止的文件夹中,请将RewriteRule的模式从 ^ folder /?$ 更改为 ^ $ 。
答案 7 :(得分:1)
有两种方法:
使用.htaccess:Options -Indexes
创建空白index.html
答案 8 :(得分:0)
同意
Options -Indexes
如果主服务器配置为允许选项覆盖,应该有效,但如果没有,这将隐藏列表中的所有文件(因此每个目录都显示为空):
IndexIgnore *