Seite 1 von 1

Mod Rewrite: Dynamische Subdomains

Verfasst: 10.07.2008, 17:46
von schnatti
Hallo,

ich habe hier eine sehr schöne Lösung gefunden, jedoch benötige ich eine, die die Subdomains auf Unterordner des Ordners "subd" weiterleitet, und nicht auf Unterordner des Webroots. Hier ist das .htaccess Script:

Code: Alles auswählen

RewriteEngine on
# Rewrite <subdomain>.example.com/<path> to example.com/<subdomain>/<path>
#
# Skip rewrite if no hostname or if subdomain is www
RewriteCond %&#123;HTTP_HOST&#125; ^unilounge\.at$
RewriteRule ^&#40;.*&#41;$ http&#58;//www.unilounge.at/$1 &#91;L,R=301&#93;
RewriteCond %&#123;HTTP_HOST&#125; ^www\.&#40;&#91;^.&#93;+&#41;\.unilounge\.at$
RewriteRule ^&#40;.*&#41;$ http&#58;//%1.unilounge.at/$1 &#91;L,R=301&#93;
RewriteCond %&#123;HTTP_HOST&#125; .
RewriteCond %&#123;HTTP_HOST&#125; !^www\. &#91;NC&#93;
# Extract &#40;required&#41; subdomain &#40;%1&#41;, and first path element &#40;%3&#41;, discard port number if present &#40;%2&#41;
RewriteCond %&#123;HTTP_HOST&#125;<>%&#123;REQUEST_URI&#125; ^www\.&#40;&#91;^.&#93;+&#41;\.unilounge\.at&#40;&#58;80&#41;?<>/&#40;&#91;^/&#93;*&#41; &#91;OR&#93;
RewriteCond %&#123;HTTP_HOST&#125;<>%&#123;REQUEST_URI&#125; ^&#40;&#91;^.&#93;+&#41;\.unilounge\.at&#40;&#58;80&#41;?<>/&#40;&#91;^/&#93;*&#41; &#91;NC&#93;
# Rewrite only when subdomain not equal to first path element &#40;prevents mod_rewrite recursion&#41;
RewriteCond %1<>%3 !^&#40;.*&#41;<>\1$ &#91;NC&#93;
# Rewrite to /subdomain/path
RewriteRule ^&#40;.*&#41; /%1/$1 &#91;L&#93; 

Vielen Dank im Voraus für eure Hilfe.

Liebe Grüße,
Dennis

Verfasst:
von

Verfasst: 11.07.2008, 00:13
von net(t)worker
wenn ich das richtig sehe musste nur die unterste Zeile ändern:

Code: Alles auswählen

RewriteRule ^&#40;.*&#41; /subd/%1/$1 &#91;L&#93; 
damit die automatische verlinkung der domainnamen nicht greift verwende ich jetzt mal wwz anstatt www

so wird dann bei xyz.domain.tld/seitex.html das dokument unter wwz.domain.tld/subd/xyz/seitex.html ausgeliefert... hat aber den nachteil das diese dolument eben auch über die normale Domain aufgerufen werden könnten... besser wäre es also für die subdomains ein eigenen ordner anzulegen... also domain.tld und wwz.domain.tld auf einen ordner legen und *.domain.tld auf ein anderen, dazu musste aber DNS Einträge erstellen können...

wirklich ganz optimal wäre es wenn du dann anstatt *.domain.tld jede einzelne subdomain im DNS anlegst, so kann dir dann keiner ein marke.domain.tld unterschieben...