¿Comodines ServerName en hosts virtuales basados ​​en nombre de Apache?


16

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

Respuestas:


40

Uso ServerAlias, en lugar de ServerNamesolo:

ServerName somename.dev

ServerAlias *.dev


2
Las versiones recientes de apache ya ni siquiera permitirán comodines en ServerName, y el error le indica que use ServerAlias ​​en su lugar.
Quentin Skousen

Increíble. Esto fue rápido y al grano. Def me ahorró tiempo. Gracias.
Art Geigel

4

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...)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.