Im Kontext einer Webseite ist eine Weiterleitung (oder Redirect) eine Möglichkeit, den User auf eine neue Seite zu bringen, ohne dass dieser eine Aktion tätigen muss. Ein Beispiel dafür ist unser Kontaktformular. Wenn eine Nachricht erfolgreich versendet wurde, kommt der User auf eine Danke-Seite, um die getätigte Aktion zu bestätigen und mögliche nächste Schritte vorzuschlagen. Aber wie macht man das richtig, und noch wichtiger: Was passiert, wenn man es falsch macht?
Finger weg von HTTP 301:
Moved Permanently
Eine Weiterleitung via HTTP 301 "Moved Permanently" wird auf der Maschine des Users gespeichert. Das hat technisch gesehen Vor- und Nachteile.
Der Vorteil
Der Browser muss keine Anfrage an den Webserver senden, da er die Antwort schon kennt: "Hier gibt's nichts, schau da drüben nach." Das ist schnell und spart Bandbreite.
Der Nachteil
Der Seitenbetreiber gibt ab diesem Zeitpunkt die komplette Kontrolle über den Pfad ab. Gespeichert wird diese Weiterleitung nämlich auf der Festplatte des Besuchers, im berühmt-berüchtigten Cache. Hier hat der Seitenbetreiber keinen Zugriff. Der User wird somit immer auf das neue Ziel geleitet.
Das Problem
Angenommen, man erstellt eine Webseite und möchte, dass der Root-Pfad "/" auf eine Unterseite leitet, z. B. "/de" oder "/wp/". Nach sechs Jahren entscheidet man sich dann, eine neue Webseite zu erstellen. Das vorher genutzte Verzeichnis wird im neuen System nicht mehr benötigt, da man Multi-Language anders löst oder von WordPress auf ein anderes System umsteigt. "/" soll jetzt die neue Startseite bereitstellen. Alles schon gesehen. Für alle bisherigen User bleibt die permanente Weiterleitung bestehen, ohne dass der Seitenbetreiber im Nachhinein etwas dagegen machen kann.
Mögliche Lösungen, wenn es schon passiert ist
Bevorzugt: Man behält die mittlerweile sinnlose Unterseite und stellt die Startseite unter "/" und "/wp/" zur Verfügung. Neue User bekommen so das korrekte Ergebnis, und alte User bekommen eine Kopie.
Man bittet den User, den Cache zu löschen oder die Seite über ein Inkognito-Fenster zu öffnen. Wurde der Cache vom User gelöscht, ist das Problem ebenfalls gelöst. Inkognito-Fenster verwenden per Design keinen Cache aus dem normalen Fenster.
Man lebt fürs Erste damit, dass alte User nicht auf diesen Teil der Seite zugreifen können, bis sie entweder den Cache löschen oder ein neues Gerät haben, auf dem diese Weiterleitung nicht gespeichert ist.
So wird's richtig gemacht
Diese speziellen Fälle entstehen meist durch unsachgemäßes "Patchen" eines anderen Problems: die falsche Wahl des Root-Verzeichnisses. Die Startseite nicht unter "/" anzuzeigen, ist in den allermeisten Fällen nur unschön. Da die allermeisten Kunden lediglich die Domain, z. B. "www.nexa.systems", ohne "/de" eingeben, kostet die Weiterleitung bei jedem Erstaufruf bzw. bei jedem Crawl Zeit und Bandbreite. Ästhetisch ist der Link "www.nexa.systems/wp/" genauso ansehnlich wie "www.nexa.systems/index.html".
Wenn man die Startseite aus irgendeinem Grund weiterleiten möchte, sollte man entweder einen temporären Redirect (z. B. 302) verwenden oder wenigstens die max-age-Direktive im Cache-Control-Header mit einem Monat oder so hinzufügen. Damit hätte man wenigstens ein globales Ablaufdatum für alle Geräte.
Faustregel: Wenn man nicht exakt versteht, was man tut, verwendet man nichts, was permanente Konsequenzen mit sich bringt.