En nuestra LAN he configurado varios TLD 'falsos' en el servidor DNS, con la intención de usarlos para el alojamiento virtual basado en el nombre de Apache. Me gustaría combinar esto con el alojamiento virtual masivo (es decir, VirtualDocumentRoot) en un servidor Ubuntu 10.04 LAMP.
Sin embargo, no puedo hacer que seleccione el vhost correcto.
Aquí hay un resumen de la configuración de Apache:
NameVirtualHost 10.10.0.205
<VirtualHost 10.10.0.205>
ServerName *.test
VirtualDocumentRoot /var/www/%-3.0.%-2/test/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
<VirtualHost 10.10.0.205>
ServerName *.dev
VirtualDocumentRoot /var/www/%-3.0.%-2/dev/%1/
CustomLog /var/log/apache2/access.log vhost_combined
</VirtualHost>
Un nombre de host como www.dominio.com.dev , resuelve correctamente a 10.10.0.205, pero siempre selecciona el vhost superior, en lugar del inferior, que coincide más estrechamente.
Tenía la impresión de que Apache primero intentaría hacer coincidir el ServerName antes de pasar al valor predeterminado de vhost superior para una IP determinada. ¿Qué estoy haciendo mal? ¿O no es esto posible y debo usar otra IP para cada TLD?
Apachectl -S salidas (recortadas):
10.10.0.205:* is a NameVirtualHost
default server *.test
port * namevhost *.test
port * namevhost *.dev
fuente
Si esto puede ayudar, solo para completar un poco la respuesta de Mo:
Los comodines en ServerAlias también funcionan en nombres de dominio parciales, como
ServerName somename.dev
ServerAlias *-mysite.dev
Me salvó la vida hace poco ^^ (un sitio principal con subdominios para cada aplicación sub tales como
admin-somename.dev
,bo-somename.dev
,api-somename.dev
...)fuente