Kürzlich wollte ich für meinen Mailserver eine weiterleitung auf das Webinterface mit Roundcube realisieren, wenn jemand auf eine beliebige Domain geht. Es soll also ausgelesen werden welche Domain der Nutzer aufgerufen hat und dann auf ein bestimmtes Unterverzeichnis der jeweiligen Domain umgeleitet werden.

Weil das ein bisschen schwer zu erklären ist, hier ein paar Beispiele:

mail.maltris.org soll nach mail.maltris.org/roundcubemail
mail.manage-it-for.me nach mail.manage-it-for.me/roundcubemail
mail.oprtr.org nach mail.oprtr.org/roundcubemail

Ich hoffe, das Prinzip ist verstanden.

Zu bewerkstelligen ist die Aufgabe mit folgendem Inhalt der .htaccess für den allgemein gültigen vHosts:

RewriteEngine on
RewriteRule ^(.*)$ http://%{HTTP_HOST}/roundcubemail/ [R=permanent,L]

Das gleiche funktioniert natürlich auch mit SSL, zum Beispiel wenn man automatisch nach https umleiten will.

Es ist auch möglich die Weiterleitung variabel für https und http zu realisieren:

RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [env=protokoll:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ - [env=protokoll:http]

RewriteRule ^(.*)$ %{ENV:protokoll}://%{HTTP_HOST}/roundcubemail/ [R=permanent,L]

So wird der Webserver prüfen, ob der Nutzer https oder http eingegeben hat und entsprechend weiterleiten.

Falls sich der Sinn noch nicht erschlossen hat: Wenn ich eine neue Domain oder Subdomain zum Server leite (im Nameserver), wird dieser automatisch, ohne dass ich irgendwas mache, auf das Unterverzeichnis weiterleiten und dabei die Domain beibehalten. Das spart mir schlichtweg den Aufwand der Konfiguration einer neuen Domain.

Quellen:

  • https://httpd.apache.org/docs/trunk/expr.html
  • http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html

1 thought on “Jede Domain auf bestimmtes Unterverzeichnis der Domain weiterleiten unter Apache (mod_rewrite)

  1. Endlich jemand, der auch die Quellen in seinen Postings angibt! Das spart einiges an Sucherei. Machen viele leider nicht.

Leave a Reply

Your email address will not be published. Required fields are marked *