Wildcard-Subdomains und mod_vhost_alias

  • Hallo Allerseits,


    Wir versuchen folgendes Szenario umzusetzen:
    Wenn ein Besucher eine beliebige Subdomain zu einer Domain (bspw. a1.domain.de) aufruft, soll er falls vorhanden in das entsprechende Verzeichnis (bspw. /srv/www/web**/a1/) geleitet werden. Dabei soll sich a1.domain.de wie eine echte (Sub-)Domain verhalten.


    Dazu haben wir:
    im Apache das Modul vhost_alias eingebunden.
    im externen DNS einen Wildcard (* IN A ...) hinzugefügt
    im LiveConfig eine custom.lua und ein Script geschrieben, dass uns die VHost-Konfig für die entsprechende Domain per Include modifiziert. (bspw. VirtualDocumentRoot /srv/www/web**/htdocs/%1/)


    Bis hierhin funktioniert das auch ganz gut. Der DNS funktioniert. die Anpassung der Apache-Konfig-Files ebenfalls. Ein Konfig-Test bringt keine Fehler. Apache startet anstandslos neu.


    wenn man nun aber eine beliebige Subdomain aufruft, zu der auch ein DocRoot existiert, dann bringt LiveConfig die Meldung "Domain ist nicht verfügbar".
    Selbstredend soll bei dieser Variante natürlich nicht jede einzelne Subdomain via LC angelegt werden müssen (dazu soll das vhost_alias-Modul herhalten).


    Gibt es hier eine Variante das ganze ans Laufen zu bekommen? Kann man ggf. die Verfügbarkeitsprüfung von LC umgehen?


    Im Prinzip geht es darum, dass Nutzer einer Plattform selbstständig "Arbeitsversionen" anlegen und löschen können sollen, die dann als Subdomain erreichbar sind.


    Beste Grüße und vielen Dank!
    Michael Graupner

  • Hallo,


    ich schätze dass das mit einer RewriteRule und einer Wildcard-Subdomain erheblich einfacher gehen dürfte als mit mod_vhost_alias.


    Im Prinzip also:

    • Subdomain mit "*"-Hostname im LiveConfig anlegen, ggf. gewünschtes Webspace-Startverzeichnis auswählen
    • dort eine .htaccess-Datei anlegen, die mit einem regulären Ausdruck über HTTP_HOST prüft, ob das gewünschte Zielverzeichnis existiert


    Wie das vom Prinzip her funktioniert ist im URL Rewriting Guide im Abschnitt "Virtual User Hosts" beschrieben. :)
    Wichtig ist dabei, zwei RewriteRules zu erzeugen: eine setzt den HTTP_HOST vor das tatsächlich angeforderte Verzeichnis, die zweite Regel routet diese Anfrage dann entsprechend. Mit "-d" können Sie prüfen, ob das gewünschte Zielverzeichnis existiert. Ggf benötigen Sie noch eine weitere RewriteRule für Zugriffe auf nicht vorhandene Subdomains (quasi die "Standard-Subdomain").

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!