ServerName-Platzhalter in namenbasierten virtuellen Apache-Hosts?

16

In unserem LAN habe ich mehrere "gefälschte" TLDs auf dem DNS-Server eingerichtet, um sie für das namensbasierte virtuelle Hosting von Apache zu verwenden. Ich möchte dies mit Massen-Virtual-Hosting (dh VirtualDocumentRoot) auf einem Ubuntu 10.04 LAMP-Server kombinieren.

Ich kann es jedoch nicht schaffen, den richtigen vhost auszuwählen!

Hier ist eine Zusammenfassung der Apache-Konfiguration:

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>

Ein Hostname wie www.domain.com.dev wird korrekt in 10.10.0.205 aufgelöst, wählt jedoch immer den oberen vhost anstelle des unteren aus, der genauer übereinstimmt.

Ich hatte den Eindruck, dass Apache zuerst versuchen würde, den Servernamen abzugleichen, bevor standardmäßig der oberste vhost für eine bestimmte IP-Adresse verwendet wurde. Was mache ich falsch? Oder ist das nicht möglich und muss ich für jede TLD eine andere IP verwenden?

Apachectl -S Ausgänge (getrimmt):

10.10.0.205:*          is a NameVirtualHost
    default server *.test
    port * namevhost *.test
    port * namevhost *.dev
Martijn Heemels
quelle

Antworten:

40

Verwenden Sie ServerAliasstatt ServerNameallein:

ServerName somename.dev

ServerAlias *.dev

Mo.
quelle
2
Neuere Apache-Versionen erlauben nicht einmal mehr Platzhalter in ServerName, und der Fehler weist Sie an, stattdessen ServerAlias ​​zu verwenden.
Quentin Skousen
Genial. Dies war schnell und auf den Punkt. Def hat mir Zeit gespart. Vielen Dank.
Art Geigel
4

Wenn dies helfen kann, nur um die Antwort von Mo ein wenig zu vervollständigen:

Platzhalter in ServerAlias ​​können auch für Teil-Domain-Namen verwendet werden, z

ServerName somename.dev

ServerAlias *-mysite.dev

Es hat mein Leben gerettet kürzlich ^^ (eine Haupt - Website mit Subdomains für jede Unter App wie admin-somename.dev, bo-somename.dev, api-somename.dev...)

Sÿl
quelle