Apache SSL vhost 不会使用 DocumentRoot,而是使用服务器 webroot

Apache SSL vhost won't use DocumentRoot but rather uses server webroot

我有一个使用 DV 通配符证书的 apache 配置。 ssl.conf 配置为对所有服务器流量使用证书。

我的 vhost conf 文件中定义了两个虚拟主机。一个生产虚拟主机和一个开发虚拟主机。 conf 文件内容为;

<VirtualHost *:443>
  ServerName www.example.com
  ServerAlias example.com
  ServerAdmin webmaster@example.com
  DocumentRoot /var/www/html/vhosts/prod_example_com/

  <Directory "/var/www/html/vhosts/prod_example_com">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog "/var/log/httpd/www.example.com-error_log"
  CustomLog "/var/log/httpd/www.example.com-access_log" common

  #   Enable/Disable SSL for this virtual host.
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/comodo/STAR_example_com.crt
  SSLCertificateKeyFile /etc/pki/tls/certs/csr/www_example_com.key
  SSLCertificateChainFile /etc/pki/tls/certs/comodo/SectigoRSADomainValidationSecureServerCA.crt
</VirtualHost>

<VirtualHost *:443>
  ServerName dev.example.com
  ServerAdmin webmaster@example.com
  DocumentRoot "/var/www/html/vhosts/dev_example_com"

  <Directory "/var/www/html/vhosts/dev_example_com">
    AllowOverride All
    Require all granted
  </Directory>

  ErrorLog "/var/log/httpd/dev.example.com-error_log"
  CustomLog "/var/log/httpd/dev.example.com-access_log" common

  #   Enable/Disable SSL for this virtual host.
  SSLEngine on
  SSLCertificateFile /etc/pki/tls/certs/comodo/STAR_example_com.crt
  SSLCertificateKeyFile /etc/pki/tls/certs/csr/www_example_com.key
  SSLCertificateChainFile /etc/pki/tls/certs/comodo/SectigoRSADomainValidationSecureServerCA.crt
</VirtualHost>

因此,当我转到 https://dev.example.com, it works great. However, when I try to go to https://www.example.com 时,它会转到 /var/www/html 的 Apache 服务器 webroot。

我是不是忽略了什么?

在此先感谢您提供的任何帮助?

我好像找到问题了。在我的特定实例中,vhost.conf VirtualHost 标记都更改为 *:443,但让一切回到正轨的是从我的 httpd.conf 中注释掉 ServerName www.example.com:443 并重新启动 Apache。我希望这可以帮助可能遇到同样问题的其他人。