用htaccess拒绝目录列表

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

我想添加一个htaccess文件到/public_html/Davood/否认DirectoryListing在/Davood和子文件夹,这是可能的?

选项 – 索引应该工作,以防止目录列表。

如果您使用.htaccess文件,请确保您的主Apacheconfiguration文件中至less有“allowoverride选项”设置。

如果Options -Indexes不像Bryan Drewerybuild议的那样工作,你可以编写一个recursion方法来创build空白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 

这有更多的信息。

为了显示Forbidden错误,请在您的.htaccess文件中包含这些行:

 Options -Indexes 

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

 IndexOptions -FancyIndexing 

如果我们想要某个特定的扩展名不显示,那么:

 IndexIgnore *.zip *.css 
 Options -Indexes 

我必须尝试创build.htaccess文件,我想要禁止目录索引列表的当前目录。 但是,对不起,我不知道在.htaccess代码recursion。

尝试一下。

同意

 Options -Indexes 

如果主服务器configuration为允许选项覆盖,则应该工作,但如果不是,则会隐藏列表中的所有文件(因此每个目录都显示为空):

 IndexIgnore * 

选项-Indexes为受保护的目录返回403禁止的错误。 通过在htaccess中使用以下redirect,可以实现相同的行为:

 RedirectMatch 403 ^/folder/?$ 

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

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

 RewriteEngine on RewriteRule ^folder/?$ - [F] 

如果你的htaccess文件夹是你要禁止的,把RewriteRule的模式从^ folder /?$改为^ $

有两种方法:

  1. 使用.htaccess: Options -Indexes

  2. 创build空白index.html