Объявите несколько портов для одного и того же 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>
Как я могу объявить новый порт ('listen', ServerName, ...) для 'domain.localhost'?
Если я добавлю следующий код, apache будет работать (слишком много) также для всех других поддоменов '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>
Вопрос несколько неоднозначный, но постараюсь помочь.
Если вы хотите, чтобы один и тот же виртуальный хост прослушивал несколько портов, сделайте следующее:
Listen 80
NameVirtualHost *:80
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:80 *:8080>
ServerName some.domain.name
ServerAlias some.other.domain.name
....
</VirtualHost>
Вообще говоря, вы не определяете несколько виртуальных хостов на основе имен одного и того же доменного имени, если вам не нужно использовать другой протокол.
Для виртуальных хостов на основе SSL-имен вы должны быть особенно осторожны: по определению не может быть несколько сертификатов на одном IP: Port, поэтому, чтобы избежать ошибок сертификата, это должен быть сертификат Wilcard, охватывающий все обслуживаемые доменные имена.