Apache 不会显示 Web 根目录中的索引,子文件夹可以正常显示

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

答案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/

如果它确实有隐形内容那就没问题了,我曾多次欺骗自己这样认为,所以不要太自责。

相关内容