Webseite auch mit Verschreiber in URL erreichbar machen
Wildcard-Domains richtig konfigurieren


Immer wieder tauchen Fragen auf, was eigentlich Wildcard-Domains sind, wozu sie dienen und wie man sie konfiguriert.

In dieser Artikelserie geht es speziell um das Zusammenspiel von Wildcard-Domains und Webserverkonfigurationen und Anwendungen.

Neben der Einrichtung im Nameserver folgen Beispiele, welche Konfigurationen vorzunehmen sind, damit ein Apache-Webserver die gewünschten Ergebnisse liefert.

Was sind Wildcards-Domains und wozu dienen sie

Technisch etwas vereinfacht, kann man es so zusammenfassen: Wildcard-Domains dienen dazu, dass auch nicht explizit eingerichtete Subdomains vom DNS aufgelöst werden.

Das mag jetzt für Nichttechniker sehr abstrakt klingen und die Sache nicht unbedingt erhellen. Aus diesem Grund bevorzuge ich bei der Erklärung von Wildcard-Domains lieber das folgende Szenario:

Egal ob man nun www.meine-domain.tld oder meine-domain.de in seinem Browser eingibt, man landet immer bei www.meine-domain.de. Okay, das kennt man und ist normal.

Was passiert aber nun, wenn man sich beim Tippen verschreibt und versehentlich ww.meine-domain.tld oder wwww.meine-domain.tld eingibt? Im Normalfall kommt dann mit einiger Verzögerung im Browser die Fehlermeldung, dass es diesen Server nicht gibt.

Genau hier setzen Wildcard-Domains an, denn sie sorgen dafür, dass auch Verschreiber immer zum Ziel, in unserem Beispiel www.meine-domain.tld, führen.

Aber es gibt auch andere Anwendungen, bei denen Wildcard-Domains angewendet werden. Würden keine WildCard-Einträge benutzt werden, müsste jede Subdomain im Nameserver und im Webserver separat eingetragen und konfiguriert werden. Was das an Konfigurations- und Pflegeaufwand bedeuten würde, ist leicht vorstellbar. Benutzt man hingegen Wildcard-Domains, braucht man das System nur einmalig zu konfigurieren und es funktioniert danach ohne jeden weiteren Pflegeaufwand.

Bevor man beginnt, sollte man einen Test mit einem “Verschreiber” machen. Für diesen Test muss man allerdings zwingend einen Kommandointerpreter nutzen und nicht den Browser. Warum werden wir später sehen. Dazu einfach unter Linux/Mac OS X ein Terminal aufmachen. Benutzt man Windows dann über “Start” - “Ausführen” und anschließend cmd eingeben. Anschließend gibt man bei allen Betriebssystemen das Selbe ein:

nslookup ww.meine-domain.tld

meine-domain.tld wird dabei durch die eigene Domain ersetzt. Das Ergebnis ist eine Fehlermeldung, dass es ww.meine-domain.tld nicht gibt. Wer wissen will, wie eine Ausschrift für bestehende Domains aussieht, gibt einfach nur nslookup meine-domain.tld ein.

Einrichtung im Nameserver (DNS)

Die wichtigste Voraussetzung überhaupt ist, dass wir Zugriff auf den für unsere Domain zuständigen Nameserver haben und diesen auch konfigurieren dürfen. Das ist bei preiswerten Hostingpaketen allerdings oftmals nicht der Fall. Trotzdem lohnt auch hier mal eine Nachfrage beim Hoster, ob dieser die Domain nicht als WildCard-Domain einrichten kann.

Vorausgesetzt, dass man vollen Zugriff auf den Nameserver hat, fügt man nun am Ende der Konfiguration folgende Zeile hinzu:

*.meine-domain.tld. 14400 IN A XXX.XXX.XXX.XXX

Dabei ersetzt man meine-domain.tld durch die eigene Domain und XXX.XXX.XXX.XXX. durch die IP-Adresse des Servers. Ganz wichtig ist der Punkt hinter dem Domain-Namen. Aber das hatten wir ja schon mal in einem anderen Zusammenhang.

Für im web gefunden sieht der Eintrag so aus:

*.meine-domain.tld. 14400 IN A 212.227.83.65

Auf welchem Wege man Zugang zur DNS-Konfiguration hat, kann sehr verschieden sein. Die Möglichkeiten reichen vom Webinterface bis zur direkten Bearbeitung der Zonen-Datei. Aus diesem Grund lässt sich kaum ein allgemein gültiger Weg für das Hinzufügen der oben gezeigten Zeile angeben. Zumal sich auch die Pfade zu den Konfigurationsdateien von Distribution zu Distribution unterscheiden können. Meistens hilft es aber, wenn bind als Nameserver-Software eingesetzt wird, einen Blick in /var/named/ zu werfen.

Die gleiche Vielfalt gilt auch für das Thema Neueinlesen/Restart des Nameservers. So kennen ich zum Beispiel Webinterface-Lösungen, die automatisch nach Änderungen die Konfigurationsdateien neu einlesen und somit mit den geänderten Werten auf Anfragen antworten. Andere erwarten dahin gegen einen expliziten Restart mittels

/etc/init.d/named restart

Hat man also alles richtig eingetragen und bekommt bei Anfragen trotzdem nicht die gewünschten Ergebnisse, liegt es oftmals am vergessenen Restart des Nameservers.

Und weil wir gerade beim Thema “richtig eintragen” sind: Man sollte bei DNS-Konfigurationen immer sehr, sehr sorgfältig vorgehen, da falsch konfigurierte Nameserver nicht nur dafür sorgen können, dass eine ganze Domain nicht mehr erreichbar ist sondern auch oftmals schwer zu findende Angriffsmöglichkeiten bieten.

Ist man mit den Arbeiten fertig, sollte man im nächsten Schritt überprüfen, ob man auch das gewünschte Ergebnis erhält. Dazu benutzt man jetzt wieder den bereits oben gemachten Test mit dem Verschreiber - also:

nslookup ww.meine-domain.tld

Wenn alles in Ordnung ist, bekommt man jetzt für ww.meine-domain.tld die IP-Adresse angezeigt, die man bei der Konfiguration angegeben hat.

Allerdings gibt es auch hier noch einen Fallstrick: Die neue Konfiguration muss - stark vereinfacht ausgedrückt - erst in allen anderen Nameservern des Internets bekannt gemacht werden. Dafür sorgt aber das DNS von sich aus und man muss nichts weiter unternehmen. Allerdings kann dieser Vorgang etwas dauern. Aus diesem Grunde sollte man also nicht in Panik verfallen, wenn man bei den ersten Abfragen mit nslookup immer noch Fehlermeldungen erhält. Wenn man sich sicher ist alles richtig gemacht zu haben, einfach etwas später noch mal testen.

Ist die Konfiguration im Nameserver erfolgreich eingebracht und getestet, folgt im nächsten Schritt die Konfiguration des Webservers. Denn auch wenn wir nun bei ww.meine-domain.tld keine Fehlermeldung mehr bekommen, die richtigen Webseiten liefert unser Server immer noch nicht aus.

Apache-Konfiguration für Wildcard-Domains

Eigentlich ist die Konfiguration von Apache ganz einfach. Wir müssen nur wissen, ob der Apache Inhalte ausschließlich für eine Domain ausliefert oder für mehrere. Bei mehreren Domians spricht man von der VHOST-Konfiguration, die oftmals in separate Konfigurationsdateien ausgelagert ist. Also suchen wir in den Konfigurationsdateien von Apache erstmal nach einem Eintrag ServerName, der die umzukonfigurierende Domain beinhaltet. Unter Linux kann man in etwa so vorgehen:

cd /etc/apache2
grep -i "servername meine-domain" *

Oftmals verstecken die unterschiedlichen Linux-Distributionen gerade VHOSTS in tieferen Verzeichnisebenen. Dann macht man einfach aus dem * am Ende */* und so weiter, bis man den Eintrag gefunden hat. Der Vorteil der Benutzung von grep ist, dass es uns auch gleich den Namen der Datei ausgibt, in der es den Eintrag gefunden hat. Diese Datei öffnen wir nun und fügen unter der Zeile mit ServerName noch die folgende Zeile hinzu:

ServerAlias *.meine-domain.tld

Der Eintrag mit ServerAlias ist gleich, egal ob es sich um eine VHOST oder um eine Single-Server-Konfigurationen handelt.

Das sieht dann so aus:

ServerName meine-domain.tld
ServerAlias *.meine-domain.tld

Nach den Änderungen ist der Apache neu zu starten, damit diese wirksam werden.

Abschließend sollte man dann ein paar Tests unter Angabe beliebiger Subdomains durchführen, um sicherzustellen, dass bis hier hin alles funktioniert. Ist das der Fall, können wir uns an das Feintuning mittels .htaccess machen.
Wildcard-Domains mit .htaccess feintunen

Bis jetzt liefert unser Webserver immer den selben Inhalt aus, egal welche Subdomain wir angeben. Aber eben unter jeder eingegebenen Subdomain und nicht unter der zu bestimmenden Hauptdomain. Und genau das ist das Problem. Ein bekanntes Stichwort in dem Zusammenhang ist “Duplicate Content”, den es unbedingt zu vermeiden gilt.

Also müssen wir uns entscheiden, welche unsere Hauptdomain sein soll unter der wir unseree Inhalte ausliefern wollen. Die gebräuchlichsten Formen sind entweder mit www oder ohne. Ist diese Entscheidung getroffen, setzen wir sie technisch mittels .htaccess-Datei um. Haben wir uns für die Form ohne www entschieden, tragen wir Folgendes in die .htaccess ein:

RewriteCond %{HTTP_HOST} !^meine-domain.tld$
RewriteRule ^(.*)$ http://meine-domain.tld/$1 [L,R=301]

Bevorzugt man hingegen die Variante (oft) mit www, lauten die notwendigen Zeilen:

RewriteCond %{HTTP_HOST} !^www.meine-domain.tld$
RewriteRule ^(.*)$ http://www.imeine-domain.tld/$1 [L,R=301]



Autor:
Leider noch kein Bild von inghe -/- vorhanden.

Bewertung: +++-- (52 Prozent)

Druckansicht | Idee per Mail empfehlen | Idee bewerten Gut bewerten Schlecht bewerten

ZurückZurück

Neuen Kommentar zur Idee schreiben