Subdomains mit mod_rewrite

Mit folgendem Code kann man beliebig viele Subdomains anlegen:

Quellcode

  1. RewriteEngine on
  2. # Skip rewrite if no hostname
  3. RewriteCond %{HTTP_HOST} ^domain\.tld$
  4. RewriteRule ^(.*)$ http://www.domain.tld/$1 [L,R=301]
  5. # Extract (required) subdomain (%1), and first path element (%3), discard port number if present (%2)
  6. RewriteCond %{HTTP_HOST}<>%{REQUEST_URI} ^www\.([^.]+)\.domain\.tld(:80)?<>/([^/]*) [OR]
  7. RewriteCond %{HTTP_HOST}<>%{REQUEST_URI} ^([^.]+)\.domain\.tld(:80)?<>/([^/]*) [NC]
  8. # Rewrite only when subdomain not equal to first path element (prevents mod_rewrite recursion)
  9. RewriteCond %1<>%3 !^(.*)<>\1$ [NC]
  10. # Rewrite to /subdomain/path
  11. RewriteRule ^(.*) /%1/$1 [L]
Alles anzeigen
Hierbei wird jedes Unterverzeichnis, z.B. also domain.tld/sub in http://www.sub.domain.tld umgewandelt. Außnahmen kann man durch einen einfachen zusätzlichen Code nach Zeile 4 festlegen:

Quellcode

  1. # only this subdomains works
  2. RewriteCond %{HTTP_HOST} ^www.(sub1|sub3|sub5).* [NC]
Nun werden nur die drei Domains domain.tld/sub1, domain.tld/sub3 und domain.tld/sub5 in ihre jeweilige Subdomain umgewandelt. Alle anderen Unterordner bleiben in ihrer normalen Struktur.
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

164 mal gelesen

Kommentare 2

  • Black Rider -

    Über vHosts musst du jedoch die Subdomains erst einmal wirklich anlegen, per mod_rewrite brauchst du das nicht.

  • Slyx -

    ich erstell dafür immernoch lieber vhosts :)
    Aber die Möglichkeit da kannte ich noch garnicht... auchmal interessant zu kennen!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen