[mod_rewrite] documentroot met subdirs als subdomeinen

Pagina: 1
Acties:

  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 20-01 10:16

Jurgle

100% Compatible

Topicstarter
Heren,

Na een zoektoch waar ik moedeloos van wordt dacht ik een post op GoT maar weer eens te proberen, want... ik heb een probleem.

Ik heb een domein (stel jurgle.nl) dat gehost gaat worden met een server waar Xen op draait. In deze virtuele server is een IP aan mij toegewezen, waar jurgle.nl aan gekoppeld is en daar draait een apache webserver. Ik kan niet bij Apache's httpd.conf, wel kan ik met het welbekende .htaccess alles doen wat ik wil.

De bedoeling is dat ik in de document root van jurgle.nl (/www/jurgle.nl/htdocs/) allemaal directories heb staan (www, sub1, sub2) die subdomeinen zijn van jurgle.nl, www.jurgle.nl point dus intern naar /www/jurgle.nl/htdocs/www/ en sub1.jurgle.nl point naar /www/jurgle.nl/htdocs/sub1/

Latere zorg, als bovenstaand probleem gefixed is:
Als een subdomein (directory) niet bestaat of er is er geen opgegeven moet er niet een interne redirect komen, maar een externe naar www.jurgle.nl

Wat is heb is dit:
code:
1
2
3
4
5
6
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(.+)\.jurgle\.nl [NC]
RewriteCond %{DOCUMENT_ROOT}%1 -d
RewriteRule ^(.*)$ %1/index.php?var=$1 [QSA,L]


Dit werkt. Als ik in die index.php van een bestaand subdomein een var_dump doe van $var krijg ik netjes het relevant gedeelte van de request url te zien (index.php bijvoorbeeld), maar als ik die laatste regel vervang door:
code:
1
RewriteRule ^(.*)$ %1/$1 [QSA,L]

wat volgens mij in mijn geval de bedoeling is, hoewel $1 de waarde 'index.php' heeft, werkt het zaakje niet.

De error_logs van apache zijn aan het piepen over een infinite recursie van mod_rewrite... kan iemand mij uit de brand helpen?

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 20-01 10:16

Jurgle

100% Compatible

Topicstarter
Schop!

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant


  • Jurgle
  • Registratie: Februari 2003
  • Laatst online: 20-01 10:16

Jurgle

100% Compatible

Topicstarter
Het probleem is opgelost en ik dacht zelf het antwoord te posten voor toekomstige Tweakers met hetzelfde probleem.

Bovenstaand probleem kan niet met een HTACCESS bestand worden opgelost.

De reden is dat er eeuwig recursie op treed wat niet voorkomen kan worden, omdat de te herschrijven subdomeinen steeds weer gequeried worden waardoor opnieuw hetzelfde HTACCESS bestand door Apache geopend wordt.

Een workaround zou zijn door een 'magic' key aan je URLs toe te voegen, waardoor er te identificeren is dat er al een rewrite heeft plaatsgevonden. Deze 'magic' key kun je dan echter nergens meer in een URL naar zo'n subdomein gebruiken.

De oplossing om de functionaliteit zoals hierboven beschreven werkend te krijgen is de regels hierboven toevoegen aan de configuratie van Apache zelf. Hierdoor wordt de configuratie (en dus de rewrite) maar 1 keer uitgevoerd, waardoor er geen recursie meer is.

My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant