有index.html文件,但仍然获得目录列表

时间:2016-12-02 15:30:32

标签: html apache httpd.conf vhosts

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

2 个答案:

答案 0 :(得分:3)

使用

DirectoryIndex index.html

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

<强>更新

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

答案 1 :(得分:0)

不是说这会为你解决这个问题,但对我来说,当我第一次开始使用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)权限(在这种情况下要小心所有权)最后的写权限(2或w)可能永远不会在没有充分理由的情况下看到你的web根目录中的文件。

要尝试的第二件事,请在浏览器网址栏中使用index.html

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

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