我有一台在 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
答案1
检查 apache 访问日志文件,看看你确实请求了正确的文件。还要检查索引文件中是否存在任何失控标记(例如,缺少</head>
该标记可能会导致整个文档仅被解析为标题信息。)
答案2
还有其他 index.XXX 文件吗?通常,例如 index.php 的优先级高于 index.html。
答案3
您可以尝试检查相关 index.html 文件的最后访问时间,以帮助排除故障。首先,您需要确保文件系统上的 atime 标志已更新。运行 mount 并查看文档根目录所在的文件系统是否设置了 noatime 标志。如果设置了,则说明您没有更新文件的 atime,需要在没有此标志的情况下重新挂载它。否则,它应该会更新 atime。
现在您已经完成了,只需运行此命令:
ls -l --full-time --time=atime index.html
然后等待几秒钟,然后尝试访问http://www.exampledomain.egg/然后返回 shell 并再次运行 ls 命令,查看 atime 是否已改变。
如果 atime 没有改变:
查看 /etc/httpd/conf.d/ 中是否仍启用了默认的 welcome.conf。可能是欢迎错误文件为空或类似内容,而您正在匹配该文件。那里的默认匹配仅在根目录下匹配,这听起来像您遇到的情况。
如果 atime 确实发生了改变:
确保 index.html 文件不是真的为空? cat index.html
另外,您没有提到是否在浏览器中的空白页上检查过源代码,看它是否真的是空的,或者只是包含不可见的内容。
使用不同的浏览器来验证问题是否出在服务器端:
卷曲http://www.exampledomain.egg/
如果它确实有隐形内容那就没问题了,我曾多次欺骗自己这样认为,所以不要太自责。