用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 /?$改为^ $ 。
有两种方法:
-
使用.htaccess:
Options -Indexes
-
创build空白index.html