Weiterleitungen richtig setzen

von Jochen Moschko

Kategorie(n): Ratgeber Datum: 26. März 2018
Wer seine Website auf einem Apache-Server hostet, kann über die .htaccess-Datei weitreichende Anpassungen und Einstellungen vornehmen. Sie liegt normalerweise im Hauptordner der Website und über sie lassen sich nicht nur unter anderem die serverseitige Komprimierung oder das Browsercaching aktivieren und konfigurieren – auch Weiterleitungen können eingerichtet werden. Mittels einer Weiterleitung kann man festlegen, dass ein Besucher beim Aufruf einer bestimmten URL automatisch auf eine andere Seite weitergeleitet wird. Oft bekommt der Nutzer davon gar nichts mit. Aber auch für die Auffindbarkeit der eigenen Seiten in Suchmaschinen sind Weiterleitungen nicht selten ein wichtiges Mittel, weil der Suchmaschinencrawler durch sie die neue URL erfährt. Warum ändert sich eine URL überhaupt? Theoretisch gesehen muss das nicht geschehen. Wenn eine Website jedoch teilweise oder vollständig umstrukturiert wird („Relaunch“) oder Änderungen an den angebotenen Produkten und Dienstleistungen vorgenommen werden, kann dieser Fall eintreten. In großen Online-Shops entfallen häufig Produkte und gleichzeitig kommen neue dazu. Wenn Besucher und Suchmaschinencrawler in diesem Fall auf ein ähnliches Produkt weitergeleitet werden, ist das nur sinnvoll.

Weiterleitungen einrichten – so funktioniert´s:

Beim Einrichten einer Weiterleitung sollte man vorher entscheiden, ob sie vorübergehender oder dauerhafter Natur sein soll. Gerade für Suchmaschinen macht das aus technischer Sicht nämlich einen erheblichen Unterschied. Anhand des HTTPS-Statuscodes, welcher beim Aufruf einer Seite zurückgegeben wird, erfährt der Suchmaschinencrawler, ob es sich um eine vorübergehende oder dauerhafte Weiterleitung handelt. Wann macht eine vorübergehende Weiterleitung Sinn (HTTP-Statuscode 302)?
  • Wenn ein Produkt oder eine Dienstleistung vorübergehend nicht verfügbar ist
  • Wenn an der Website technische Arbeiten vorgenommen werden
Wann macht eine dauerhaufte Weiterleitung Sinn (HTTP-Statuscode 301)?
  • In allen Fällen, bei denen die URL-Änderung dauerhaft sein soll
So leitest Du eine URL vorübergehend weiter:
Redirect /alte-seite.html https://www.example.com/de/neue-seite/
So leitest Du eine URL dauerhaft weiter:
RedirectPermanent /alte-seite.html https://www.example.com/de/neue-seite/
[su_note note_color="#f1f1f1"]Grundsätzlich gilt: Bevor Du in der .htaccess-Datei eine Weiterleitung definieren kannst, musst Du – sofern noch nicht geschehen – die „RewriteEngine“ einschalten. Das geschieht, indem Du vor Deinen Weiterleitungen einmalig die folgende Codezeile einfügst:
RewriteEngine On
[ab hier kannst Du Deine Weiterleitungen festlegen]
[/su_note]

Viele URLs oder ganze Domain weiterleiten

Oft hält sich die Anzahl der weiterzuleitenden URLs in Grenzen. Manchmal muss aber eine sehr große Zahl an URLs auf einmal weitergeleitet werden und auch hierfür bietet die .htaccess-Datei Möglichkeiten für eine einfache Umsetzung:
RewriteCond [Bedingungen]
RewriteRule [Ziel-URL und weitere Parameter]
Allerdings kann es je nach Szenario sehr kniffelig werden. Gerade wenn die URL-Struktur der Website nicht einheitlich aufgebaut ist, wird die Liste der Bedingungen schnell sehr komplex und unübersichtlich. [su_note note_color="#f1f1f1"]Besonders wichtig ist es... ...dass Du die Weiterleitungen und die Funktionsfähigkeit Deiner Website unbedingt testest, nachdem die Weiterleitungen eingerichtet wurden! Es ist keine Seltenheit, dass sich unbemerkt Fehler einschleichen, die ohne Testen häufig erst viel später bemerkt werden. Unsere Codeschnipsel stellen wir ohne Gewähr zur Verfügung. [/su_note] Aber auch, wenn sich die gesamte Domain ändert – beispielsweise bei einem Domainumzug oder der Umstellung auf HTTPS – leistet die .htaccess-Datei gute Dienste. So leitest Du Besucher und Suchmaschinen auf eine andere Domain um („www.example.com“ steht hier für die neue Domain):
RewriteCond %{HTTP_HOST} !www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www\.example\.com/$1 [R=301,L]
So leitest Du Besucher und Suchmaschinen von HTTP auf HTTPS um:
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Technische Umsetzung überprüfen

Während der Nutzer ihn nicht bemerkt, macht es für Suchmaschinen einen großen Unterschied, ob es sich um eine vorübergehende (302) oder dauerhafte (301) Weiterleitung handelt. Doch wie kann ich prüfen, ob ich meine Weiterleitungen technisch einwandfrei umgesetzt habe? Ganz einfach. Rufe die Seite https://httpstatus.io/ auf. Gib in das Textfeld die URL bzw. URLs ein, die Du überprüfen möchtest. Klicke auf „Submit“. Nun wird Dir angezeigt, welche HTTP-Statuscodes beim Aufruf der URLs zurückgegeben werden. Wenn Du URLs dauerhaft umleiten möchtest und im Feld „Status Codes“ „301  200“ angegeben wird, kannst Du davon ausgehen, dass Deine Weiterleitungen technisch „sauber“ umgesetzt worden sind. Denn in diesem Fall greift zuerst die dauerhafte 301-Weiterleitung und anschließend wird HTTP-Statuscode 200 zurückgegeben, der „Ok“ bedeutet und für einen erfolgreichen Seitenaufruf steht. Bei vorübergehenden Weiterleitungen ist die Vorgehensweise dieselbe, nur dass hier Code 302 anstelle von 301 angezeigt werden sollte.