使用htaccess拒绝目录列表

DJa*_*ari 87 apache .htaccess

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

我想添加一个htaccess文件到/public_html/Davood/拒绝DirectoryListing In /Davood和Sub文件夹,这可能吗?

PPC*_*der 110

选项 - 索引应该用于防止目录列表.

如果您使用的是.htaccess文件,请确保您的主apache配置文件中至少有"allowoverride options"设置.


Bry*_*ery 59

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

Options -Indexes
Run Code Online (Sandbox Code Playgroud)

有更多的信息.


Cyc*_*one 34

如果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);
            }
        }
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

这些空白的index.php文件可以轻松删除或覆盖,它们将使您的目录无法列表.

  • 虽然空文件没有那么重要,但更好的解决方案可能是使用[符号链接](http://php.net/manual/en/function.symlink.php),这样可以节省一些如果他选择显示某种统一的消息而不是空白页面,他只需要修改1个文件. (7认同)

Viv*_*vek 16

要显示Forbidden错误,请在.htaccess文件中包含以下行:

Options -Indexes 
Run Code Online (Sandbox Code Playgroud)

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

IndexOptions -FancyIndexing
Run Code Online (Sandbox Code Playgroud)

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

IndexIgnore *.zip *.css
Run Code Online (Sandbox Code Playgroud)


小智 8

有两种方法:

  1. 使用 .htaccess : Options -Indexes

  2. 创建空白 index.html


Sau*_*try 6

选项-索引 非常适合我,

这是.htaccess文件:

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


   ....etc stuff

</IfModule>
Run Code Online (Sandbox Code Playgroud)

之前: 在此处输入图片说明

之后:

在此处输入图片说明


小智 5

Options -Indexes
Run Code Online (Sandbox Code Playgroud)

我必须尝试创建 .htaccess 文件,该文件是我想禁止目录索引列表的当前目录。但是,对不起,我不知道 .htaccess 代码中的递归。

尝试一下。