Apache httpd.conf仅对子域使用SSL,并为其他https URL使用404

我有我的网站邮件客户端的当前configuration:

NameVirtualHost *:443 <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key <Directory /var/www/mailclient> AllowOverride All </Directory> DocumentRoot /var/www/mailclient ServerName mail.* ServerAlias mail.* </VirtualHost> 

当我尝试达到https:// mail.domain1.com或https:// mail.domain2.com这工作正常。

但是,当我尝试达到https:// domain1.com或https:// sub.domain1.com我仍然看到Web邮件客户端,但我不想看到什么,但404或类似的东西。 那么我怎样才能限制这个virtualHost只为特定的子域?

configuration将反弹错误的默认虚拟主机。 它需要在当前虚拟主机之上,以便默认,但在NameVirtualHostconfiguration下。

 NameVirtualHost *:443 <VirtualHost *:443> ServerName default.filler.name SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key <Location /> Order Allow,Deny Deny from all </Location> </VirtualHost> <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key <Directory /var/www/mailclient> AllowOverride All </Directory> DocumentRoot /var/www/mailclient ServerName mail.* ServerAlias mail.* </VirtualHost> 

它会403而不是404。

Apache将无法find正确的默认(*)虚拟主机。
你可以使用默认的虚拟主机来解决这个问题。

 <VirtualHost _default_:443> RedirectMatch permanent ^/?(.*) http://mymainwebsite.com/$1 </VirtualHost> 

如果有人用IP或其他子域连接到端口443,这将防止它popup。