“规则禁止的目录索引”是什么意思?

时间:2011-02-22 02:05:43

标签: apache .htaccess indexing root directoryindex

以下几行是什么意思?

[Mon Feb 21 20:52:13 2011] [error] [client 66.249.71.150] 
 Directory index forbidden by rule: /var/www/vhosts/website.com/httpdocs/

我的root中没有index.php,因为我的索引是home.php,网站根文件是由.htaccess规则定义的:

我的 .htaccess 文件如下所示:

DirectoryIndex index.php /index.php
RewriteCond %{HTTP_HOST} ^website.com$
RewriteRule ^$ en/home [R=301,L]
...

非常感谢!

UPDATE1:

我无权访问虚拟主机配置文件,我在共享主机上,所以只有.htacces在我的/ httpdocs / thats我所有。我该怎么办?我应该禁用DirectoryIndex(我不使用它反正网站工作正常!)我怎样才能检查我是否有目录索引?

UPDATE2:

  • 在浏览器中测试时,一切似乎都很好,快速而且很好!
  • 在日志中,我看到了:
  

[Sun Feb 27 02:18:56 2011] [错误]   [客户端66.249.71.81]文件没有   存在:   /var/www/vhosts/website.org/httpdocs/index

与本页顶部的第一个错误不同,这似乎是常规的404(我的404错误文档是我的主页,因此错误页面显示主页)

当我输入'website.org'时,htaccess规则确实会重定向到默认页面website.org/en/home,当我输入'websie.org/index'时,它会重定向到website.org/en / home所以这一切似乎工作正常,但我知道这两个错误意味着什么“规则禁止的目录索引......”

线索?谢谢!

2 个答案:

答案 0 :(得分:1)

检查您的输入并确保您的网站的虚拟主机DocumentRoot列在那里,否则apache将无法获取它。

答案 1 :(得分:1)

编辑2:好的...我想我刚开始误解了这个问题。您说目录中没有index.php文件?如果是这样,DirectoryIndex index.php /index.php看起来不正确。也许您应该尝试将其更改为:

DirectoryIndex home.php

我是否正确理解了这个问题?您正在尝试显示目录​​的默认页面,对吗?


默认情况下,某些http.conf设置具有以下规则:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

每当我设置一个虚拟主机时,我经常会将此规则更改为更像这样:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

您案例中的重要部分是最后两部分OrderAllow

编辑1:实际上,在更多地查看此错误之后,这甚至可能是权限问题。您能否仔细检查Apache是​​否具有您尝试访问的目录的读取权限?