在PHP网站中停止没有.htaccess的目录列表

时间:2012-08-12 08:19:06

标签: php .htaccess directory-listing

我的网站托管服务商不允许.htaccess。现在如何在这种情况下停止目录列表?

除了index.php/index.html&之外是否还有其他选项? .htaccess

1 个答案:

答案 0 :(得分:2)

如您所知,在Apache服务器上,只有在您要访问的目录中没有index.htm,index.html,index.php等时才会给出目录列表。

所以最简单的解决方案是每个文件夹中都有一个空白的index.php - 尤其是因为你无法自己更改配置。

我刚才写了下面的代码 - 你把它放在你不希望别人得到目录列表的每个文件夹中 - 它将用户返回到他们试图访问的网站的索引。

您需要在目录的根目录中放置一个README.txt文件才能使其正常工作 - 或者只需将其更改为该文件即可。

<?php
    $i=0;
    while(!file_exists('README.txt')){
        chdir("..");
        $i--;
    }
    header("Location: ".substr($_SERVER['PHP_SELF'],0,strrpos(dirname($_SERVER['PHP_SELF']),'/',$i)));
?>

上述更简单的替代方案就是:

<?php header("Location: /"); ?>