Redict Apache目录索引

时间:2014-08-07 05:46:52

标签: apache http redirect directory-listing

我有一台Apache服务器,我想设置它,以便在请求一个没有index.html文件的目录时(因此,默认情况下,Apache会生成一个目录列表) ),而是将Apache重定向(理想情况下使用HTTP code 303)到给定的URL。

除非绝对必要,否则我想远离Apache外部(例如,让Apache加载一个手动编写标题的php脚本)。这是一个静态的站点,我想避免将脚本语言引入混合。

另外,请注意this post无法解决我的问题,因为所有提议的解决方案都使用外部脚本。

1 个答案:

答案 0 :(得分:0)

所以我想通过使用HTML meta刷新和JavaScript重定向的组合,我可以覆盖几乎所有正在使用的浏览器,但仍然有一个静态文件。所以我做的就是这个。在apache站点配置中,我发出一个指令,告诉apache首先查找index.html个文件,如果失败,请使用站点范围/no-index.html

<Directory /path/to/web/root>
    DirectoryIndex index.html /no-index.html
</Directory>
然后,

no-index.html包含以下内容:

<html>
    <head>
        <meta http-equiv="refresh" content="0; url=/">
        <script type="text/javascript">
            window.location = "/";
        </script>
    </head>
</html>

(在此示例中,它会重定向到网络根目录/,但您可以将其替换为您想要的任何网址)

有关<meta>标记正在执行的操作的说明,请参阅here