VirtualHost:停用 SSL 的全部捕获 (443)

VirtualHost: Deactivate catch all for SSL (443)

我创建了一个 SSL VirtualHost

<VirtualHost *:443>
    ServerName cloud.url.com
    ServerAlias www.url.com
    DocumentRoot /var/www/owncloud
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/owncloud.crt
    SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
</VirtualHost>

我的问题是现在每个 SSL 连接都会 /var/www/owncloud

例如 https://url.com 将变为 /var/www/owncloud 而不是 /var/www/

我如何才能只为 cloud.url.com 和其他域 "ignore the ssl" 设置 VirtualHost - 让它们留在目录中?

事实上,您的虚拟主机说 www.url.com 并且 cloud.url.com 转到 /var/www/owncloud。我认为您不希望 www.url.go 指向您自己的云。所以,只需删除 serverAlias :

<VirtualHost *:443>
    ServerName cloud.url.com
    DocumentRoot /var/www/owncloud
    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/owncloud.crt
    SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
</VirtualHost>

我想你还没有设置任何虚拟主机在端口 443 上侦听 url.com。这就是为什么 apache 将它重定向到配置了 https 的 url。 如果你不想在 url.com 上使用 ssl,你可以这样做:

<VirtualHost *:443>
  ServerName url.com
  Redirect 301 / http://url.com
</VirtualHost>

找到解决方案,将其放在一个文件中:

     <VirtualHost *:443>
       ServerName cloud.domain.com
       ServerAlias www.cloud.domain.com
       DocumentRoot /var/www/owncloud
       <Directory /var/www/owncloud/>
         Options -Indexes FollowSymLinks MultiViews
         AllowOverride All
         Order allow,deny
         allow from all
       </Directory>
       SSLEngine on
       SSLCertificateFile /etc/apache2/ssl/owncloud.crt
       SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
     </VirtualHost>

     <VirtualHost *:443>
       ServerName domain.com
       ServerAlias *.domain.com
       Redirect 301 / http://domain.com
     </VirtualHost>

谢谢!