为相同的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>
我怎样才能声明一个新的端口('听',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>
一般来说,除非需要使用不同的协议,否则不要定义多个具有相同域名的基于名称的VirtualHost。
对于基于SSL名称的虚拟主机,您必须格外小心:根据定义,在同一个IP:端口上不能有多个证书,因此,为避免证书错误,必须是wilcard证书,涵盖所有服务的域名。