Im zweiten Teil dieser Serie ging es um die Einrichtung von Wildcard-Domains im Nameserver, um nicht explizit eingerichtete Subdomains vom DNS überhaupt auflösen zu lassen. Im dritten Teil, beschäftigen wir uns nun damit, welche Konfigurationen wir an der Webserversoftware vornehmen müssen, damit wir dem Besucher den richtigen Inhalt ausliefern. Als Webserversoftware soll in unserem Fall Apache dienen. Nach dessen Grundkonfiguartion zur Aktivierung einer Wildcard-Domain, gehen wir dann auf spezielle Fälle ein, die wir mittels .htaccess-Datei abfangen.
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 *.meinedomain.tld
Der Eintrag mit ServerAlias ist gleich, egal ob es sich um eine VHOST oder um eine Single-Server-Konfigurationen handelt.
Im Falle von im web gefunden sieht das dann so aus:
ServerName im-web-gefunden.de
ServerAlias *.im-web-gefunden.de
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 mit www, lauten die notwendigen Zeilen:
RewriteCond %{HTTP_HOST} !^www.meine-domain.tld$
RewriteRule ^(.*)$ http://www.imeine-domain.tld/$1 [L,R=301]
Bei im web gefunden habe ich mich für die Variante mit www entschieden. Die entsprechenden Zeilen lauten daher:
RewriteCond %{HTTP_HOST} !^www.im-web-gefunden.de$
RewriteRule ^(.*)$ http://www.im-web-gefunden.de/$1 [L,R=301]
Im nächsten und vorerst letztem Teil dieser Serie wird es darum gehen, wie man Wildcard-Domains auf mit Plesk verwalteten Servern einrichtet.

am 17.09.2008 um 11:04 Uhr:
[…] Ist die Konfiguration im Nameserver erfolgreich eingebracht und getestet, folgt im nächsten Schritt die Konfiguration des Webservers. Denn auch wenn wir nun bei verschreiber.meine-domain.tld keine Fehlermeldung mehr bekommen, die richtigen Webseiten - wie im ersten Teil beschrieben - liefert unser Server immer noch nicht aus. Was es bei der Konfiguration des Webservers zu beachten gibt, folgt dann im dritten Teil dieser Serie. […]
am 23.11.2008 um 14:25 Uhr:
Hallo, danke für den informativen Beitrag.
Sollte aber die Zeile
RewriteRule ^(.*)$ http://meine-domain.tld/$1 [L,R=301]
nicht besser so heißen:
RewriteRule ^(.*)$ http://meine-domain.tld$1 [L,R=301]
Bei mir erscheinen sonst in der Adresszeile immer zwei “/”.
Ich gebe ein: http://bla.meine-domain.de und erhalte dann
http://meine-domain.de//
am 24.11.2008 um 17:03 Uhr:
@Frank:
Dieses Verhalten kann unter Umständen mit Deiner Einstellung für
RewriteBasesowie der generellen Apachekonfiguration und Version zusammen hängen. Schau einfach mal, wie es sich verändert, wenn Du mit oder ohneRewriteBase /arbeitest.