我有一台Apache服务器,我想设置它,以便在请求一个没有index.html文件的目录时(因此,默认情况下,Apache会生成一个目录列表) ),而是将Apache重定向(理想情况下使用HTTP code 303)到给定的URL。
除非绝对必要,否则我想远离Apache外部(例如,让Apache加载一个手动编写标题的php脚本)。这是一个静态的站点,我想避免将脚本语言引入混合。
另外,请注意this post无法解决我的问题,因为所有提议的解决方案都使用外部脚本。
答案 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。