Ein Status Code 301 bedeutet „Moved Permanently“ und wird verwendet, um eine ehemalige URL auf eine neue URL weiterzuleiten. Dies geschieht, wenn eine ehemalige URL nicht mehr existiert oder wenn sich die URL einer Seite dauerhaft geändert hat und somit die angeklickte Ziel-URL nicht mehr erreichbar ist. Erhält ein Browser die Statusmeldung 301 vom Server, so ist es möglich, dass er die Anfrage direkt an die neue URL weiterleitet.
Der Unterschied zu einem Status-Code 302 besteht darin, dass es sich bei diesem um eine temporäre Weiterleitung handelt, wodurch Suchmaschinen signalisiert wird, dass sich eine Ressource nur vorübergehend an einer anderen Stelle befindet, was die Indexierbarkeit erschweren kann.
Die korrekte Verwendung von 301-Redirects ist insbesondere dann wichtig, wenn die betroffenen URLs (wertvolle) Links von außerhalb erhalten.
Damit sich deren Wirkung weiter entfalten kann, muss eine saubere Weiterleitung erstellt werden, damit die externen Links nicht ins Leere laufen. Für die Redirect-Erstellung sollten stets absolute URLs verwendet werden und keine relativen Redirects.
Anwendungsmöglichkeiten und Code-Beispiele
Zur Erstellung von 301-Status-Codes ist es in PHP-Anwendungen möglich, einen entsprechenden Header zu erstellen. Hierzu wird das folgende PHP-Codebeispiel in die alte Datei eingetragen:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.domain.de/der-neue-name.php");
header("Connection: close");
?>
301 Redirects via HTACCESS
Praktischer ist jedoch die Alternativmöglichkeit per HTACCESS.
Benötigt wird hierzu ein Linux-Server mit aktiviertem Apache Mod-Rewrite-Modul.
Folgender Code müsste daher in die HTACCESS eingetragen werden:
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ https://www.domain.com/$1 [r=301,nc]
Alternative Schreibweisen lauten wie folgt:
RewriteEngine On
RewriteRule ^vz/dokument.html https://www.domain.de/dokument.html [R=301]
Redirect 301 vz/dokument.html https://www.domain.de/dokument.html
301 Redirects mit nginx
Bei einem nginx-Server muss in die nginx.conf-Datei folgender Code eingetragen werden:
rewrite ^/vz/dokument.html $scheme://$host/dokument.html permanent;
Allgemein hängt es vom jeweiligen Server ab, welche Weiterleitungsregel greift.
Im Falle eines Domainwechsels müssen alle URLs 1:1 auf das passende Äquivalent umgeleitet werden und nicht auf die Startseite. Ebenfalls sollten keine Weiterleitungsketten- oder Schleifen entstehen, da die Suchmaschinen-Crawler sonst ab der vierten Weiterleitung bspw. abbrechen.