Eine 301-Weiterleitung, auch “301 Moved Permanently”-Weiterleitung genannt, ist für die dauerhafte Weiterleitung des Datenverkehrs zu einer neuen URL gedacht.
Im Grunde wird dem Besucher der alten URL mitgeteilt, dass er sein Skript oder seinen Link durch die neue URL ersetzen soll. Ein Beispiel hierfür ist eine Website, die jahrelang mit HTTP (ohne SSL) betrieben wurde und nun mit HTTPS (mit SSL) ausgestattet ist. Die 301-Weiterleitung zeigt dem Besucher der alten URL an, dass der Link von http://www.theory7.net auf https://www.theory7.net geändert werden soll.
301-Weiterleitung und SEO
Eine 301-Weiterleitung ist die freundlichste Weiterleitung, die Sie in Bezug auf SEO vornehmen können. Damit teilen Sie der Suchmaschine mit, dass die URL, die Sie für die alte URL halten, jetzt unter einer neuen URL verfügbar ist.
Wenn es Backlinks oder andere verweisende Websites gibt, die mit der alten URL verlinkt sind, wird die Suchmaschine wie Google oder Bing auch diesen Wert, der unter der alten URL eingeht, freundlich umleiten und zur neuen URL führen.
Daher ist es auch immer sehr wichtig, dass Sie eine 301-Weiterleitung für 404-Seiten erstellen, damit der Wert in Bezug auf SEO und Besucher immer gute Inhalte auf der richtigen URL anzeigen! Nehmen Sie also niemals einfach nur Seiten offline, sondern nehmen Sie sie offline und machen Sie eine 301-Weiterleitung auf eine andere Seite oder relevanten Inhalt.
301 Umleitungsmethoden
Eine 301-Weiterleitung kann auf verschiedene Weise erstellt werden. Welche Methode für Sie am einfachsten ist, hängt vom jeweiligen Hostingpaket/Server ab. Im Folgenden werden die gängigsten erörtert:
- 301-Weiterleitung über .htaccess-Regel
- 301-Weiterleitung über mod_rewrite in .htaccess oder Apache Vhost
- 301-Weiterleitung über PHP-Skript
- 301-Weiterleitung über Nginx
301-Umleitung über .htaccess-Regel
Eine 301-Weiterleitung kann in einer so genannten .htaccess-Datei erstellt werden. Diese Datei, die mit einem Punkt beginnt, muss in dem Ordner abgelegt werden, in dem sich auch die Dateien Ihrer Website befinden. Dieser Ordner wird oft public_html, public oder static genannt. Dies ist je nach Hosting-Paket/Server unterschiedlich.
Beispiel für 301-Weiterleitungen über .htaccess
Umleitung 301 /pfad/zu/alt/url https://www.theory7.net/pad/naar/nieuwe/url
**Anderes Beispiel:**
Umleitung 301 /alte Seite https://www.theory7.net/nieuwe-pagina
301-Weiterleitung über mod_rewrite
Diese Methode, die über mod_rewrite geht, ist eine gängige Methode und wird auch oft in der .htaccess verwendet. Diese Methode der 301-Weiterleitung ist bekannt und wird häufig verwendet, um Besucher oder Suchmaschinen von einer alten Website (Domainname) auf eine neue Website (Domainname) umzuleiten.
Es wird auch häufig verwendet, um jeden zu zwingen, von http:// auf https:// zu wechseln und so sicherzustellen, dass jeder über die sichere Verbindung geht.
Was ist mod_rewrite?
Mod_rewrite ist ein Modul, das in den Apache geladen wird. Apache ist die Software, die Ihre Skripte und Html-Dateien liest und dann in visuelle Darstellungen umwandelt. Kurz gesagt, es verwandelt Ihren geschriebenen HTML-Code in eine sichtbare Website.
Das Modul mod_rewrite ist eine Option/ein zusätzliches Modul, das geladen wird und mit dem Sie Apache anweisen können, URLs an neue URLs weiterzuleiten. Da dies im Apache geschieht, während Ihr HTML-Code verarbeitet wird, ist es auch sehr schnell!
Beispiel für eine 301-Weiterleitung über mod_rewrite
RewriteEngine Ein
rewritecond %{http_host} ^theory7.net
rewriteRule ^(.*) http://www.theory7.net/$1 [R=301,L]
In diesem Beispiel leiten wir alle Besucher, die unsere Website über http://theory7.net , also ohne vorangestelltes www, besuchen, auf die Version mit vorangestelltem www weiter, nämlich http://www.theory7.net .
Beispiel Force SSL 301 redirect mod_rewrite
RewriteEngine Ein
RewriteCond %{HTTP:X-Forwarded-Proto} !https
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
RewriteCond %{HTTPS} !=an
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
In diesem Beispiel geben wir mod_rewrite an, dass wir die URL, die wir über http:// (d. h. ohne SSL) besuchen, auf https:// (d. h. mit SSL) umleiten möchten, und zwar über eine 301-Weiterleitung.
Sobald Sie also diese 301-Weiterleitung verwenden, wird jeder Besucher zu einem https:// SSL-Link gezwungen, und in Ihrer Adressleiste wird von da an immer ein Schloss zu sehen sein.
301-Weiterleitung über PHP (Header-Funktion)
Es ist auch möglich, eine 301-Weiterleitung in PHP zu erstellen. Dies ist jedoch die Variante, die ich am wenigsten empfehle, da Apache und PHP das von Ihnen geschriebene Skript zunächst lesen und ausführen müssen und Sie erst dann über eine 301-Weiterleitung umleiten. Dies ist also wesentlich langsamer als wenn es über .htaccess oder über mod_rewrite geschieht!
Beispiel 301-Weiterleitung über PHP-Header-Funktion
<?php
//Zuerst öffnen wir den PHP-Code mit <php
///Dann öffnen wir die Header-Funktion und setzen den HTTP-Statuscode, nämlich 301 moved permanently
///Dann geben wir die neue URL über Location
header( "Status: 301 Moved Permanently" );
header( "Standort: https://www.theory7.net/nieuwe-url" );
exit();
?>
Mit dem obigen Code leiten Sie also einfach jemanden per PHP auf eine neue URL um. Sie können sie natürlich nach Ihren Wünschen anpassen.
Die // Zeilen dienen nur zur Erklärung, PHP macht nichts damit, Sie können sie also entfernen, wenn Sie den Code verwenden!
301-Weiterleitung über NGINX
Es kann sein, dass Ihr Webhosting-Anbieter NGINX statt Apache verwendet. Dabei handelt es sich um eine andere Art von Software, die etwas anders arbeitet als Apache und sich oft mehr auf eine höhere Leistung konzentriert und weniger Rechenleistung benötigt.
Leider kennt NGINX weder .htaccess noch mod_rewrite, so dass Sie mit NGINX keine 301-Weiterleitung über diese Methoden vornehmen können. Sie können dies über PHP tun, aber es gibt auch eine andere Möglichkeit über die NGINX-Konfiguration.
In der Tat können Sie über die NGINX vhost-Konfiguration 301-Weiterleitungen für verschiedene Zwecke erstellen. Ich werde im Folgenden einige Beispiele anführen, die für Sie nützlich sein könnten:
301 Umleitung auf eine neue Domäne über NGINX
Server {
server_name alter-domainname.net;
^/(.*)$ http://nieuwedomeinnaam.net/$1 dauerhaft umschreiben;
}
In diesem Beispiel erstellen Sie ein Server-Objekt in der NGINX-Konfiguration. In diesem Objekt geben Sie unter server_name den alten Domain an. Das bedeutet, dass das Objekt in der nginx-Konfiguration aktiviert wird, sobald Sie auf olddomainname.net surfen.
In diesem Fall handelt es sich um eine Rewrite-Regel. Dort stellen wir ein, dass Sie, wenn Sie auf der alten Domainname.net surfen, auf die neue Domainname.net umgeleitet werden sollen. Dies geschieht über eine 301-Weiterleitung!
301 Umleitung der alten Seite auf die neue Seite in NGINX
Server {
server_name theory7.net www.theory7.net;
rewrite ^/alte-seite$ /neue-seite.html permanent;
}
Für die 301-Weiterleitung einer alten Seitenurl zu einer neuen Seitenurl benötigen Sie noch weiteren Code. Oben erstellen wir wieder ein Server-Objekt in der NGINX-Konfiguration.
Unter server_name stellen wir den Domainnamen theory7.net und www.theory7.net ein. Das bedeutet, dass dieses Objekt aktiviert wird, sobald wir einen dieser Domänennamen in der Adressleiste aufrufen.
Als Nächstes sehen Sie eine Umleitungszeile, mit der wir sagen, dass /old-page (und alles danach) auf /new-page.html umgeleitet werden soll. Auf diese Weise können wir eine bestimmte Seite einfach über eine 301-Weiterleitung in NGINX umleiten!