使用 htaccess 拒绝目录列表

我有一个文件夹,例如: /public_html/Davood/ 文件夹中的子文件夹太多,例如: /public_html/Davood/Test1//public_html/Davood/Test1/Test//public_html/Davood/Test2/、 ..。

我想添加一个 htaccess 文件到 /public_html/Davood/拒绝目录列表在 /Davood和子文件夹,这是可能的吗?

176286 次浏览

尝试将其添加到该目录中的 .htaccess文件中。

Options -Indexes

这个 有更多的信息。

选项-索引 应该可以防止目录列表。

如果使用。Htaccess 文件确保在主 Apache 配置文件中至少设置了“ allow覆盖选项”。

如果 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 文件可以很容易地删除或覆盖,并且它们将使您的目录不可列出。

为了显示禁止错误,请在.htaccess 文件中包含以下代码行:

Options -Indexes

如果我们想要索引我们的文件,并显示一些信息,然后使用:

IndexOptions -FancyIndexing

如果我们希望某些特定的延伸不显示,那么:

IndexIgnore *.zip *.css
Options -Indexes

我得试试创造。Htaccess 文件的工作目录,我想不允许目录索引列表。但是,对不起,我不知道递归在。Htaccess 代码。

试试看。

我同意

Options -Indexes

如果主服务器配置为允许选项覆盖,那么应该可以工作,但是如果不允许,这将隐藏清单中的所有文件(因此每个目录都显示为空) :

IndexIgnore *

Options-Index 返回受保护目录的403禁止错误。在 htaccess 中使用以下重定向可以实现同样的行为:

RedirectMatch 403 ^/folder/?$

这将为 Example.com/folder/返回一个禁止的错误。

您还可以使用 mod-rewrite 来禁止对文件夹的请求。

RewriteEngine on


RewriteRule ^folder/?$ - [F]

如果您的 htaccess 位于要禁止的文件夹中,请将 RewriteRule 的模式从 ^ file/更改为 ^$

有两种方式:

  1. 使用. htaccess: Options -Indexes

  2. 创建空白的 index.html

选项-索引 非常适合我,

这是 .htaccess档案:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes <---- This Works for Me :)
</IfModule>




....etc stuff


</IfModule>

以前:enter image description here

之后:

enter image description here