我有我的网站邮件客户端的当前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将反弹错误的默认虚拟主机。 它需要在当前虚拟主机之上,以便默认,但在NameVirtualHost
configuration下。
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。