La version stable actuelle d'Apache (2.2) n'a pas cette fonctionnalité, mais la 2.4 a la directive IF .
Vous devez créer deux VirtualHosts pour l'instant, mais vous pouvez définir des éléments via des variables globales d'environnement ou apache et les utiliser dans votre configuration de virtualhost (en définissant par exemple le documentroot). De cette façon, si vous voulez changer, vous pouvez le faire avec une seule ligne de modification.
Bien sûr, vous pouvez utiliser include pour faire quelque chose comme ceci:
<VirtualHost *:80>
include /etc/apache2/vhost.conf.d/site1
</VirtualHost>
<VirtualHost *:443>
include /etc/apache2/vhost.conf.d/site1
include /etc/apache2/vhost.conf.d/site1-ssl
</VirtualHost>
ps: SNI sera le courant dominant des années avant l'adaptation IPv6. Tous les navigateurs traditionnels le prennent en charge en supposant déjà que vous utilisez un système d'exploitation pris en charge.
edit: comme fooquency repéré, vous ne pouvez pas mettre SSLEngine On sur un bloc If, donc ma réponse est fausse.
SSLEngine On
un<If>
testament donneraSSLEngine not allowed here
, donc le cas d'utilisation suggéré au début de cette réponse ne semble malheureusement pas possible. Cela semble être dû au fait que «seules les directives qui prennent en charge le contexte de répertoire peuvent être utilisées dans cette section de configuration». (ref) etSSLEngine
estserver config, virtual host
(ref) , pas un répertoire.Non. Vous pouvez déplacer la plupart des éléments vers la configuration globale et en hériter dans VirtualHost.
la source
Cela a été répondu dans une autre question. Utilisez une instruction Include. A fonctionné à merveille pour moi:
Servir http (port 80) et https (port 443) sur le même VirtualHost
la source
Pour les hôtes virtuels SSL, vous devez soit utiliser un deuxième port ala
ou vous devez utiliser des adresses IP distinctes
Il y a en fait une très bonne explication dans les documents SSL Apache http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html
Rechercher "Pourquoi ne puis-je pas utiliser SSL avec des hôtes virtuels basés sur le nom / non basés sur IP?"
la source