0

下一行是什么意思?

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

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

我的.htaccess文件如下所示:

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

非常感谢!

更新1:

我无权访问虚拟主机配置文件,我在共享主机上,所以我的 /httpdocs/ 中只有 .htacces 这就是我所拥有的。我该怎么办?我是否应该禁用 DirectoryIndex (无论如何我都不使用它,并且网站运行良好!)我如何检查我是否有目录索引?

更新2:

  • 在浏览器中进行测试时,一切似乎都运行良好、快速且良好!
  • 然而,在日志中,我看到了这个:

[Sun Feb 27 02:18:56 2011] [error] [client 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 所以一切似乎都很好,但我不知道这两个错误是什么意思“规则禁止目录索引......”

线索?谢谢!

4

2 回答 2

1

检查您的条目并确保您的站点的虚拟主机 DocumentRoot 列在那里,否则 apache 将无法访问它。

于 2011-02-22T02:10:42.533 回答
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 是否对您尝试访问的目录具有读取权限?

于 2011-02-22T02:11:17.617 回答