【问题标题】:Have index.html file but still getting a directory listing有 index.html 文件但仍然获得目录列表
【发布时间】:2017-04-17 13:43:05
【问题描述】:

我的 Apache DocumentRoot 目录中有一个 index.html 文件,但是当我转到我的 URL 时,我仍然得到一个 DocumentRoot 目录的目录列表,而不是显示的 index.html 文件。当我重新加载页面时,apache access_log 显示 200。有什么建议吗?

【问题讨论】:

  • @Pekka웃 DirectoryIndex 已设置。 DocumentRoot /var/www/vhosts/ihlgt/httpdocs DirectoryIndex /var/www/vhosts/ihlgt/httpdocs/index.html 我上面列出的 DocumentRoot 目录是列出来的,所以对我来说似乎是正确的?
  • 您不应该使用绝对路径。您没有告诉 apache 要加载的文件。你告诉 apache 在目录中寻找什么文件名

标签: html apache httpd.conf vhosts


【解决方案1】:

使用

DirectoryIndex index.html

它告诉 apache 为目录请求显示什么文档。

更新

您应该只指定 apache 将在请求的文件夹中查找的文件名

【讨论】:

  • 谢谢!就是这样。我的网站仍然无法正常工作。 index.html 只是一个测试,它确实是我正在开发的一个 php 应用程序。但是只显示文件名显示了 index.html,现在我已经将 DirectoryIndex 更改为 index.php,我的网站没有加载。但至少我现在在错误日志中收到了一个 PHP 致命错误。找到解决方案是另一个单独的主题,因此我将此答案标记为已接受。再次感谢。
【解决方案2】:

并不是说这会为你解决问题,但对我来说,当我第一次开始使用 Apache2 时,在 Web 根目录下移动或写入新文件时会忘记文件权限

ls -hal /var/www/host_one/index.html

如果上面没有相同用户:组的读取 (r) 权限,或者如果所有权不包括 Web 服务器的用户/组,请尝试以下方法以允许组读取

# Modify ownership, change 'www_host' to Apache2 group
chown ${USER}:www_host /var/www/host_one/index.html
# give read+write (6) to user and read (4) to group owners
chmod 640 /var/www/host_one/index.html

尝试刷新网站,看看权限问题出在哪里。请注意,大多数 Web 文档只需要正确的读取权限和所有权,浏览器才能获取它们进行渲染,在极少数情况下,您可能需要服务器脚本的可执行(1 或 x)权限(在这种情况下要小心所有权)如果没有充分的理由,您的 Web 根目录中的文件可能永远不会看到最后写入权限(2 或 w)。

第二个尝试,在浏览器的 URL 栏中使用 index.html

# by IP
http://192.168.0.100/index.html
# by domain
http://site-name.local/index.html

如果上面加载了您的文档,那么就像@Pekka 웃 已经说明的那样,您可能有一个缺少或启用目录列表的服务器选项,而不是在该目录中查找索引页面。如果这是问题所在,那么我过去尝试过两种修复方法。一,htaccess 配置以禁用该子目录中的目录列表,二,服务器虚拟主机配置以防止整个站点出现目录列表。就我个人而言,我更喜欢使用选项二,然后在应该允许列出的目录上放置一个 htaccess 配置以获得权限而不是拒绝。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多