Déclarez plusieurs ports pour les mêmes VirtualHosts:
SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual Host requests on all IP addresses
NameVirtualHost *:443
<VirtualHost *:443>
ServerName domain.localhost
DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
<Directory "/Users/<my_user_name>/Sites/domain/public">
Order allow,deny
Allow from all
</Directory>
# SSL Configuration
SSLEngine on
...
</VirtualHost>
Comment puis-je déclarer un nouveau port ('listen', ServerName, ...) pour 'domain.localhost'?
Si j'ajoute le code suivant, Apache fonctionne (trop) également pour tous les autres sous-domaines de 'domain.localhost' (subdomain1.domain.localhost, subdomain2.domain.localhost, ...):
<VirtualHost *:80>
ServerName pjtmain.localhost:80
DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
RackEnv development
<Directory "/Users/Toto85/Sites/pjtmain/public">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
La question est quelque peu ambiguë, mais je vais essayer de vous aider.
Si vous souhaitez que le même hôte virtuel écoute sur plusieurs ports, vous procédez comme suit:
Listen 80
NameVirtualHost *:80
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:80 *:8080>
ServerName some.domain.name
ServerAlias some.other.domain.name
....
</VirtualHost>
De manière générale, vous ne définissez pas plusieurs VirtualHosts basés sur le nom du même nom de domaine, sauf si vous devez utiliser un protocole différent.
Pour les hôtes virtuels SSL basés sur le nom, vous devez être très prudent: par définition, il ne peut pas y avoir plusieurs certificats sur la même IP: Port, donc, pour éviter les erreurs de certificat, il faudrait que ce soit un certificat wilcard, couvrant tous les noms de domaine servis.