Die Gründe dafür sind vielfältig: Die neue Firmen-CI ist allergisch auf Bindestriche, auch in Domainnamen, man hat sich an der Domain für sein privates Blog sattgesehen oder will mal den großen Subdomain-Aufstand proben. Also registriert man eine neue Domain und zieht den bestehenden Webauftritt dahin um.
Soweit die Theorie. Aber das soll natürlich nicht dazu führen, dass plötzlich alle Links von anderen Seiten oder auch aus den SERPs ins Leere laufen, gleichzeitig soll aber der Auftritt auch nicht unter beiden Domains erreichbar sein – und sei es nur die Startseite, weil moderne CMS- und Blogginglösungen das spätestens ab der zweiten Ebene wieder gerade biegen.
Die Lösung lautet: 301. Wikipedia weiß dazu:
Die angeforderte Ressource steht ab sofort unter der im „Location“-Header-Feld angegebenen Adresse bereit. Die alte Adresse ist nicht länger gültig.
Also genau das, was wir wollen. Immer wieder stolpert man darüber, dass man das mit der Apache-Direktive RedirectPermanent machen soll, aber dazu kann man nur sagen: Finger weg! RedirectPermanent ist Teil von mod_alias und unterstützt daher keine regulären Ausdrücke und keine Bedingungen, wann eine Regel greift und wann nicht. Aber nur damit macht das ganze eigentlich richtig Spaß, wobei bei der Umleitung einer kompletten Domain auf eine andere das ganze auch mit regulären Ausdrücken nicht wirklich kompliziert ist:
1 2 3 4 5 6 | <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} !^www.notaseo.de$ RewriteRule ^(.*)$ http://www.notaseo.de/$1 [L,R=301] </IfModule> |
Die erste Zeile prüft zunächst, ob mod_rewrite überhaupt verfügbar ist. Was mittlerweile bei so ziemlich jedem Provider der Fall sein dürfte. Die zweite schaltet die Umschreibemaschinerie an. Zeile drei ist eine Bedingung, die prüft, ob der Host, mit dem die Website aufgerufen wurde, nicht www.notaseo.de ist – nur dann greift die nachfolgende Regel, die einfach alles, was nach dem Host kommt, nimmt, in eine Variable $1 schreibt und auf die Zieldomain umleitet. Die Angaben in Klammern sagen aus, dass danach, sollte die Datei weitere Regeln beinhalten, diese nicht mehr abgearbeitet werden (L wie Last) und die Umleitung (R wie Redirect) per 301 erfolgen soll.
Das ganze hat noch einen angenehmen Nebeneffekt: Aufrufe ohne www oder mit irgendwelchen anderen Subdomains leiten immer sauber auf die eigentliche Domain um und man stellt so sicher, dass eine Ressource unter einer kanonischen URL erreichbar ist.
Tut man das ganze aufgrund eines Domainwechsels und nicht, um die Kanonizität sicherzustellen sollte man natürlich anschließend noch versuchen, Backlinks auf die alte Domain durch die Webmaster ändern zu lassen. Schließlich will man die alte Domain auch irgendwann mal kündigen.
Prüfen, ob alles so funktioniert wie gedacht und auch der richtige Statuscode zurückgegeben wird kann man solche Sachen mit diversen Online- und Offlinetools, etwa dem Web-Sniffer oder dem HTTP Client.
Pingback: Umziehen Part 2: 301 mit RedirectPermanent
Pingback: Umziehen Part 3: Mit mod_proxy von Server zu Server
Pingback: Blogpotato » Blog Archive » Get your shit configured!
Pingback: Neue Website für den „Verein die Schwarzwalduhr”
Pingback: Umziehen Part 2: 301 mit RedirectPermanent