我有一个文件夹,例如: /public_html/Davood/ 文件夹中的子文件夹太多,例如: /public_html/Davood/Test1/、 /public_html/Davood/Test1/Test/、 /public_html/Davood/Test2/、 ..。
/public_html/Davood/
/public_html/Davood/Test1/
/public_html/Davood/Test1/Test/
/public_html/Davood/Test2/
我想添加一个 htaccess 文件到 /public_html/Davood/拒绝目录列表在 /Davood和子文件夹,这是可能的吗?
/Davood
尝试将其添加到该目录中的 .htaccess文件中。
.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 文件中包含以下代码行:
如果我们想要索引我们的文件,并显示一些信息,然后使用:
IndexOptions -FancyIndexing
如果我们希望某些特定的延伸不显示,那么:
IndexIgnore *.zip *.css
我得试试创造。Htaccess 文件的工作目录,我想不允许目录索引列表。但是,对不起,我不知道递归在。Htaccess 代码。
试试看。
我同意
如果主服务器配置为允许选项覆盖,那么应该可以工作,但是如果不允许,这将隐藏清单中的所有文件(因此每个目录都显示为空) :
IndexIgnore *
Options-Index 返回受保护目录的403禁止错误。在 htaccess 中使用以下重定向可以实现同样的行为:
RedirectMatch 403 ^/folder/?$
这将为 Example.com/folder/返回一个禁止的错误。
您还可以使用 mod-rewrite 来禁止对文件夹的请求。
RewriteEngine on RewriteRule ^folder/?$ - [F]
如果您的 htaccess 位于要禁止的文件夹中,请将 RewriteRule 的模式从 ^ file/更改为 ^$。
有两种方式:
使用. htaccess: Options -Indexes
创建空白的 index.html
选项-索引 非常适合我,
这是 .htaccess档案:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes <---- This Works for Me :) </IfModule> ....etc stuff </IfModule>
以前:
之后: