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

标签 php .htaccess directory-listing

我的网站主机不允许 .htaccess。现在在这种情况下如何停止目录列表?

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

最佳答案

如您所知,在 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: /"); ?>

关于php - 停止 PHP 网站中没有 .htaccess 的目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920761/

相关文章:

git - prod 上的 .htaccess 文件并在 git 中跟踪,不想在 dev 上使用 prod 的 .htaccess

linux - 如何阻止 Apache 列出我的用户目录的内容

php - 使用单个查询搜索同一表中不同列中的每个单词

php - 使用 PostgreSQL 在 laravel 5.5 中迁移错误

apache - url重写mod_rewrite

apache - htpasswd 可以应用于除一个以外的所有 URL 吗?

file - 获取目录中所有文件的列表(递归)

http - 通过 http 获取目录列表

javascript - 如何使用character_limiter或word_limiter

php - Laravel 合并数组