Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Apache mod-rewite] Rewrite op basis van domein.

Pagina: 1
Acties:

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 30-11 19:48

SA007

Moderator Tweaking
Topicstarter
Ik probeer in principe het volgende te bereiken in apache:

Ga naar http://test.domein.nl/
Rewite naar /var/www/domein.nl/test
Dit moet alleen werken voor alle combinaties van domein en subdomein.

Ik probeer momenteel het domein zonder subdomeinen in een enviroment variabele te krijgen, alleen dit valt me tegen.

Momenteel heb ik dit:
RewriteRule .* - [E=domain:${lowercase:%{SERVER_NAME}}]

Dit zet de complete server name (domein en subdomein) in een enviroment variabele. Ik loop er een beetje op stuk hoe ik zorg dat het eventuele subdomein eraf geknipt wordt.

Iemand die toevallig weet hoe daar een regexp ofzo overheen kan om het op maat te knippen?

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 30-11 19:48

SA007

Moderator Tweaking
Topicstarter
Ondertussen is het me na redelijk bruteforcen van regexpen het gelukt om te bereiken wat ik wou.
Zal vast voor anderen intressant zijn:

code:
1
2
3
4
5
RewriteCond .${lowercase:%{SERVER_NAME}} .*\.([^.]+\.[^.]+$)
RewriteRule .* - [E=domain:%1]

RewriteCond ${lowercase:%{SERVER_NAME}} (.*)\.[^.]+\.[^.]+$
RewriteRule .* - [E=subdomain:%1]


De truc is dat van de vorige RewriteCond de parameters tussen haakjes () in %1 komen te staan.

Hierna zijn er 2 env variabelen bij, 1 waar het domein in staat en 1 met de subdomein.

Dat kan je dan bijvoorbeeld zo gebruiken:
RewriteRule ^/(.*)$ /var/www/${ENV:domain}/%{ENV:subdomain}/$1

Ik maak 'm zelf nog wat uitgebreider, met semi-wildcard support, en dit gaat waarschijnlijk mis op lege subdomeinen, maar het is een leuk begin.

[ Voor 6% gewijzigd door SA007 op 20-08-2011 23:41 ]