Apache不会在web根目录下显示索引,子文件夹没有问题

我有一个在CentOS 5.5上运行的Apache 2.2.3服务器。 在我的web目录的根目录中,有一个index.html文件。

转到www.exampledomain.egg/index.html工作,但去www.exampledomain.egg/显示一个完全空白的页面。 我已经双重检查了DirectoryIndex选项,仍然没有。

看起来好像这只影响域的根。 如果有一个子目录,就像www.exampledomain.egg/iamafolder/ ,它将正常显示自己的DirectoryIndex。

这是我在.htaccess文件中的内容:

 DirectoryIndex index.html index.txt index.php 

检查Apache的访问日志文件,看看你确实要求正确的文件。 还要检查索引文件中是否有失控标记(例如,缺less可能导致整个文档被parsing为标题信息的</head> )。

还有其他index.XXX文件吗? 例如,index.php通常优先于index.html。

您可以尝试的一件事是检查以帮助疑难解答是有问题的index.html文件的最后访问时间。 首先,您需要确保在您的文件系统上更新atime标志。 运行mount并查看文档根目录所在的文件系统是否设置了noatime标志。 如果是这样,那么你没有更新文件的一次,将需要重新挂载它没有这个标志。 否则,应该更新一次。

现在你已经完成了,那就运行这个:

 ls -l --full-time --time=atime index.html 

然后等待几秒钟,然后尝试访问http://www.exampledomain.egg/,然后返回到shell并再次运行该ls命令,查看atime是否已更改。

  • 如果atime没有改变:

    看看你是否仍然在/etc/httpd/conf.d/中打开了默认的welcome.conf,可能是因为welcome错误文件是空白的或者是你正在匹配的。 那里的默认匹配只匹配根,这听起来像你遇到的。

  • 如果atime确实发生了变化:

    确保index.html文件不是真的空? cat index.html

此外,您没有提到您是否在浏览器中查看了空白页面中的源代码,以确定它是否真的是空的,或者它是否有不可见的内容。

使用不同的浏览器来validation问题出现在服务器端:

curlhttp://www.exampledomain.egg/

如果它真的有看不见的内容,那么我已经自欺欺人地想了这么多,所以不要太过自责。