Het volgende is het geval:
Ik beheer een server met daarop Apache 2.x. D.m.v. Name Based Virtual Hosting worden hier allerlei subdomains van het hoofddomein naar betreffende webroots gestuurd. Nu groeit het aantal Virtual Hosts behoorlijk de laatste tijd en ik wil toe naar een systeem waarbij ik zonder een herstart van Apache (liefst zelfs zonder een configuratie wijziging) een nieuwe Virtual Host kan activeren.
Ik heb in onze DNS een *.domein.com aangemaakt, zodat alle subdomein in elk geval aankomen op de webserver.
Nu wil ik op basis van de naam van het subdomein, een andere webroot nemen.
In ons geval ziet dat er als volgt uit:
dev.domein.com -> /www/dev
test.domein.com -> /www/test
test.klanta.domein.com -> /www/test
test.klantb.domein.com -> /www/test
klanta.domein.com -> /www/live
klantb.domein.com -> /www/live
klantc.domein.com -> /www/live
Dus alle test domeinen gaan naar 1 webroot en alle live domeinen ook. Voor development is er ook een webroot beschikbaar.
Het lieft zou ik dus de volgende Virtual Host definities opnemen in httpd.conf:
Dit werkt niet, omdat Apache geen wildcards in het ServerName directive ondersteunt. Is het mogelijk om dit op een andere manier voor elkaar te krijgen. Ik heb al zitten spelen met Rewrite rules, maar daar kom ik echt niet uit. Ook lijkt mod_rewrite meer bedoelt voor het herschrijven van alles wat achter de / na de domeinnaam komt, niet voor het verwijzen naar een andere webroot op basis van een domeinnaam.
Ik beheer een server met daarop Apache 2.x. D.m.v. Name Based Virtual Hosting worden hier allerlei subdomains van het hoofddomein naar betreffende webroots gestuurd. Nu groeit het aantal Virtual Hosts behoorlijk de laatste tijd en ik wil toe naar een systeem waarbij ik zonder een herstart van Apache (liefst zelfs zonder een configuratie wijziging) een nieuwe Virtual Host kan activeren.
Ik heb in onze DNS een *.domein.com aangemaakt, zodat alle subdomein in elk geval aankomen op de webserver.
Nu wil ik op basis van de naam van het subdomein, een andere webroot nemen.
In ons geval ziet dat er als volgt uit:
dev.domein.com -> /www/dev
test.domein.com -> /www/test
test.klanta.domein.com -> /www/test
test.klantb.domein.com -> /www/test
klanta.domein.com -> /www/live
klantb.domein.com -> /www/live
klantc.domein.com -> /www/live
Dus alle test domeinen gaan naar 1 webroot en alle live domeinen ook. Voor development is er ook een webroot beschikbaar.
Het lieft zou ik dus de volgende Virtual Host definities opnemen in httpd.conf:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <VirtualHost *>
ServerName dev.domein.com
DocumentRoot /www/dev
</VirtualHost>
<VirtualHost *>
ServerName test.*.domein.com
DocumentRoot /www/test
</VirtualHost>
<VirtualHost *>
ServerName *.domein.com
DocumentRoot /www/live
</VirtualHost> |
Dit werkt niet, omdat Apache geen wildcards in het ServerName directive ondersteunt. Is het mogelijk om dit op een andere manier voor elkaar te krijgen. Ik heb al zitten spelen met Rewrite rules, maar daar kom ik echt niet uit. Ook lijkt mod_rewrite meer bedoelt voor het herschrijven van alles wat achter de / na de domeinnaam komt, niet voor het verwijzen naar een andere webroot op basis van een domeinnaam.