Für Suchmaschinenoptimierung (SEO) sollte man sich mit dem Einrichten von Weiterleitungen auskennen. Ich habe hier ein paar Möglichkeiten mit htaccess-Dateien & Co zusammengefasst und erklärt wozu die Redirects gut sind. Sollte ich was vergessen haben, könnt ihr mich ja ergänzen.
Wozu weiterleiten?
Vermeide doppelten Inhalt und leite Anfragen auf http://meineseite.de immer auf http://www.meineseite.de – Somit wird von der Non-www Adresse auf die www-Adresse weitergeleitet
Vermeide 404. Ändert sich die Adresse einer Seite, sollte man Sie mit einem 301 Redirect weiterleiten, damit die Suchmaschine keinen 404 Fehler erhält und die neue URL indexieren kann. 301 steht für permanente Änderung. Dies ist vor Allem dann wichtig, wenn man eine Seite zu einer neuen Domain umzieht.
Beim Weiterleiten verwenden wir meist den 301 Status Code (Moved Permanently), der bedeutet, dass die Weiterleitung permanent gilt. Für eine temporäre Weiterleitung wird 302 verwendet.
Weiterleitung per htacces Datei
Die Weiterleitungsmethode mit einer htaccess Datei ist die verbreiteste, da sie bei den meisten Webhostern funktioniert. Der Hoster muss hierbei das Apache Modul „mod_rewrite“ aktiviert haben, das ist aber meist der Fall. Mit ihr lassen sich Weiterleitungen mit einem Redirect Code auch SEO konform einrichten. Man erstellt dazu in seinem Document Root (Webroot) Verzeichnis eine Datei namens „.htaccess„. Der Dateiname beginnt mit einem Punkt, der aussagt, dass es sich um eine versteckte Datei für Linux handelt. Für eine normale Non-WWW auf WWW-Weiterleitung kann die Datei einfach mit dem folgenden Code füllen und die Domain „meineseite.de“ auf seine eigene anpassen. Fertig.
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.meineseite\.de [NC]
RewriteRule (.*) http://www.meineseite.de/$1 [R=301,L]
Mit dem R=301 wird der Redirect Status Code angegeben. Möchte man eine einzelne URL zwecks Umzug oder Dateinamensänderung umleiten, kann folgendes anfügen:
Praktisch ist auch, dass man hier eine 404 Seite hinterlegen kann, die angezeigt wird, wenn eine Seite nicht gefunden wird.
Weiterleitung per Apache Virtual Host Konfiguration
Die Weiterleitungen lassen sich auch direkt in der Konfiguration des Webservers einstellen. Darauf haben natürlich nur die Admins Zugriff, die eigene Root-Server haben. Die vhosts befinden sich im „sites-available“ von Apache. Bei mir ist das „/etc/apache2/sites-available/“ . Die Non-WWW Redirect funktioniert hier so:
ServerName meineseite.de
ServerAlias meineseite.de
RedirectMatch (.*) http://www.meineseite.de$1
</VirtualHost>
Weiterleitung mit PHP
Mit einer PHP Datei kann man ebenfalls weiterleiten. Folgender Befehl setzt die Header-Daten, die eine Weiterleitung und Status Code enthalten können. Ohne Angabe eines Status Codes wird 302 verwendet. Die Weiterleitung sollte vor der ersten Ausgabe geschehen und mit einem exit abgeschlossen werden, damit das Script beendet wird.
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.meineseite.de/neueseite.html");
exit;
?>
Weiterleitung mit HTML
Sollte man für die obigen Weiterleitungen keine technische Möglichkeit haben, gibt es noch die HTML Weiterleitung. Diese ist aber nicht SEO konform. Hierbei setzt man einfach folgende Zeile in den head-Bereich. Die 0 gibt hier die Wartezeit an, nach 0 Sekunden erfolgt also die Weiterleitung.
Weiterleitung mit JavaScript
Ebenfalls eine unschöne Art des Weiterleitens, da kein Redirect Code angegeben werden kann und Suchmaschinen höchst-wahrscheinlich diese Weiterleitung ohnehin nicht auswerten werden.
<!–
window.location.replace(‚http://www.meineseite.de/neueseite.html‘);
// –>
</script>
Im Prinzip ist alles Suchmaschinen-konform, sofern sich ein Status Code übermitteln lässt. Mehr Informationen zum Thema findet man in dem externen Artikel Automatische Weiterleitungen. Hab ich noch was vergessen?