我已经有一段时间没有使用 Apache 了,所以请多多包涵——我也知道这个问题但对我没什么帮助。
我想为我的 Icinga 实例设置一个简单的 vHost w/Apache。Icinga 已启动并运行,我可以从 xxxx/icinga 访问它,但我希望能够从外部和内部访问它。
我已经设置了 /etc/hosts 文件,以下是我在 httpd.conf 中的 vhost 基本语句
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /usr/share/icinga
ServerName icinga.domain.com
ErrorLog logs/icinga.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
.htaccess
我的文件中还有以下内容
<Directory>
Allow From All
Satisfy Any
</Directory>
在我的网络上的 Windows DNS 服务器中已经为该实例创建了一个条目,但是当我尝试通过 URL 访问该站点时,出现了内部服务器错误。
查看 /var/log/icinga.com-error_log 我看到以下条目。
[Thu Dec 13 16:04:39 2012] [alert] [client 10.0.0.1] /usr/share/icinga/.htaccess: <Directory not allowed here
有人能帮助我发现我的错误吗?
答案1
只需删除文件<Directory>
中的内容即可.htaccess
。
Apache 知道它适用于哪个目录 - 因此,它是文件.htaccess
所在的目录!您无法覆盖.htaccess
文件中其他目录的配置(安全功能)。此外,<Directory>
如果您将其放在主配置中,您的开始标记会错过目录本身;它应该是例如<Directory /path/to/dir>
。
答案2
Apache 正在准确地告诉您哪里出了问题:<Directory>
不允许here
(在您的 .htaccess 文件中)。
如果你看看Apache 文档您会发现<Directory>
仅在两种情况下才允许这样做:服务器配置和虚拟主机。
(文件的内容.htaccess
隐式应用于包含它的文件系统目录,因此您不需要该<Directory>
指令。)
您还会发现.htaccess
关于如何写入文件的教程Apache 文档中可能会有帮助。