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