Subdomain-Handling mit ISPConfig
Der Autor von ISPConfig sieht die Problematik die viele haben leider nicht:
Aus gewissen Gründen möchte man Subdomains unter dem selben User einrichten. Oder auch mal eine zweite Domain für das selbe Web.
Zum Beispiel gibt es CMS-Systeme (z.B. Typo3) die Multi-Domains unterstützen. Oder Multilingual: Mit http://www.domain.de/
sollen deutsche Inhalte und mit http://www.domain.com/
englischsprachige Inhalte erscheinen.
ISPConfig läßt zwar die so genannten "Co-Domains" zu, und ähnlich wie bei Confixx kann man sogar ein Unterverzeichnis aus dem eigenen Webroot angeben. Aber es wird kein eigener VirtualHost in Apache dafür gebaut, sondern lediglich mit Hilfe von mod_rewrite
die URL darauf umgebogen.
So kommt es zu dem meist unerwünschten Effekt, daß aus http://sub.domain.tld/
ein URL-Rewrite an den Browser zurück gegeben wird mit http://www.domain.tld/sub/
.
Dies verhindert aber o.g. Scenario mit Multidomain- oder Multilingual-Software.
Lösung
Im Forum von HowtoForge haben sich folgende zwei Möglichkeiten gebildet:
a) Patchen von ISPConfig:
Der Patch ist recht einfach: bearbeite /root/ispconfig/scripts/lib/config.lib.php
, suche nach [R]
(in der aktuellen Version 2.2.24 ist es in Zeile 1410) und lösche das Gesuchte.
Nachteile:
a) Mit jedem Update muß dieser Patch wiederholt werden.
b) Diese Änderung gilt nun für alle Subdomains.
b) Eigene mod_rewrite
-Regeln:
Im HTTP-Direktiven Feld der Domain fügt man folgende Zeilen ein:
RewriteEngine on RewriteCond %{HTTP_HOST} ^sub.domain.tld [NC] RewriteRule ^/(.*)$ /sub/$1 [L]
Für weitere Subdomains werden die letzten zwei Zeilen entsprechend wiederholt.
Nachteile:
a) Dies muß für jede betroffene Subdomain einzeln eingefügt werden.
b) Wenn der User im Webroot eigene Rewrite-Rules per .htaccess
nutzt, ist o.g. meist wirkungslos.
b) Dies ist evtl. einzelnen Kunden nicht zuzumuten.
Links:
- HowtoForge.com: keeping subdomain URL in browser address bar
- HowtoForge.com: Co/sub-domains without rewritten URLs