Apache 上的 SSL;未找到请求的 URL

Apache 上的 SSL;未找到请求的 URL

我正在 Apache/2.4.6 RHEL 服务器上设置 SSL。在 中httpd.conf,有如下所示的 VirtualHosts...

<VirtualHost *:80>
    ServerName foo.bar
    Redirect permanent / https://foo.bar
</VirtualHost>


<VirtualHost *:443>
    DocumentRoot /path/to/file

    ServerName foo.bar

    SSLEngine on
    SSLCertificateFile /path/to/file
    SSLCertificateKeyFile /path/to/file
    SSLCertificateChainFile /path/to/file

</VirtualHost>

当我在 httpd.conf 中的 VirtualHosts 之外注释掉 DocumentRoot 时,Web 浏览器返回错误 404The requested URL / was not found on this server.

我需要在 之外有一个 DocumentRoot 吗VirtualHost *:443?如果不需要,那么当我将其注释掉时会发生什么?

答案1

您将在某些 apache 配置中定义一个 DocumentRoot,但服务器可能无法访问它,您可以通过针对 RHEL 版本发出以下命令来检查这一点:

 /usr/sbin/httpd -S

和 Debian

/usr/sbin/apache2ctl -S 

它应该包含一个变量:

Main DocumentRoot: "/var/www/html"

您可以调整这个或在虚拟主机部分设置一个(我更喜欢这个,设置为与 SSL vhost 相同)。

答案2

事实证明,我单独错误地设置了 ssl.conf。修复了 ssl.conf,并从 httpd.conf 中删除了 443 的 VirtualHost,一切运行正常!

相关内容