301-Redirects - Weiterleitungen mit .htaccess
Veröffentlicht am 27.09.2023 von DomainFactory
(Update) Weiterleitungen – und zwar permanente Weiterleitungen, bei denen der Webserver dem Client und auch dem Crawler der Suchmaschine den Statuscode 301 übermittelt – sind aus SEO-Sicht sehr wichtig. Lesen Sie, wie 301-Redirects funktionieren und wie Sie mit Hilfe der sogenannten .htaccess-Datei flexibel Weiterleitungen (301-Redirects) realisieren.
Was ist ein 301-Redirect?
Ein 301-Redirect ist eine Form der Weiterleitung – der Aufruf einer Webseite oder anderen Ressource wird auf eine andere Webadresse (die Ziel-URL) umgeleitet. Dies geschieht in diesem Fall über den HTTP-Header, den der Webserver in seiner Antwort an den anfordernden Client mitsendet. Im Header-Feld „Location“ wird die neue URL angegeben und per HTTP-Statuscode dem Client mitgeteilt, was er damit tun soll. Statuscode „301 Moved Permantently“ zeigt an, dass es sich um eine permanente Weiterleitung handelt und alle weiteren Anfragen nach dieser Ressource auf die neue URL umgeleitet werden sollen.
Für Interessierte: Die Statuscodes 301 bis 308 für Weiterleitungen sind in RFC 9110 spezifiziert. Der Statuscode 301 existiert aber bereits seit der ersten HTTP-Version 1996 (RFC 1945). Erst seit 2014 (RFC 7238) gibt es auch den Statuscode „308 Permanent Redirect“ mit fast identischer Wirkung. Der einzige Unterschied: Während der Client bei Status 301 die HTTP-Methode der nachfolgenden Anfrage für mehr Sicherheit von POST auf GET ändern darf, ist das bei Status 308 nicht zulässig – nützlich etwa, wenn Formulardaten an eine permanent geänderte URL übermittelt werden sollen. In Bezug auf SEO sind beide Codes gleichwertig – aber das kann sich durchaus noch ändern.
Anwendungsfälle für 301-Redirects aus Marketing-Sicht
Traffic-Transfer
Ein 301-Redirect ist eine permanente Weiterleitung von einer URL zu einer anderen (die URL “moved permanently). Der Sinn und Nutzen eines 301-Redirects besteht darin, den Traffic von einer alten Seite (zum Beispiel bei einem Relaunch die Internetauftritts) auf eine neue Seite (die neu erstellte Zielseite) umzuleiten, ohne dass die Besucher auf eine 404-Fehlerseite stoßen. Eventuell haben Sie auch den Domainnamen für Ihren neuen Internetauftritt gewählt. Mit htaccess-redirects können Sie alle Aufrufe Ihrer alten Domain an Ihre neue Internetadresse weiterleiten. Vielleicht haben Sie aber auch für Online-Marketing-Aktionen in der Vergangenheit spezielle Landingpages angelegt, die nun nicht mehr benötigt werden. Auch in diesem Fall können Sie mit einer Redirection, z.B. auf Ihre Startseite oder direkt zu den passenden Produkt-Unterseiten weiterleiten.
Link-Popularität erhalten
Wenn eine alte Seite viele Backlinks hat, wird der “Link-Juice” durch einen 301-Redirect auf die neue Seite übertragen. Dies kann helfen, das Ranking der neuen Seite in den Suchmaschinen zu verbessern bzw. zu erhalten.
404 vermeiden
Ein 301-Redirect wird oft verwendet, wenn eine Website umstrukturiert wird, Seiten umbenannt werden oder wenn eine Website auf eine neue Domain umzieht. Durch die Verwendung eines 301-Redirects wird sichergestellt, dass die Besucher auf die neue Seite geleitet werden und die Suchmaschinen die neue Seite indexieren und in den Suchergebnissen anzeigen können. Ungeliebt 404-Seiten werden dadurch vermieden, was sich auch in puncto Suchmaschinenoptimierung bezahlt macht.
HTTP 301-Redirect auf HTTPS und andere Anwendungsfälle von 301-Redirects
Es gibt eine Reihe von Situationen, in denen Sie mit 301-Redirects arbeiten sollten – und nicht etwa mit Meta-Refreshs oder ähnlichen Tricks. Diesen ist gemeinsam, dass sich entweder die URLs für Inhalte dauerhaft geändert haben oder ähnliche Inhalte unter verschiedenen URLs erreichbar sind, was von Suchmaschinen womöglich als „Duplicate Content“ bestraft wird. In diesem Falle sollten Sie eine Adresse als bevorzugte (kanonische) Seite auswählen und indizieren lassen, während die anderen URLs permanent darauf umgeleitet werden. (Mehr erfahren Sie in unserem Beitrag 301-Redirect: Permanente Weiterleitungen aus SEO-Sicht.)
Anwendungsfälle für 301-Redirects aus technischer Sicht:
- Nutzer sollen auf verschlüsselte Seiten mit SSL-Zertifikat (HTTPS) umgeleitet werden.
- Die Website wurde auf eine neue Domain migriert.
- Ein Inhalt soll über verschiedene URLs erreichbar sein (verschiedene Domains, Versionen mit und ohne „www.“ etc.)
- Pfade haben sich geändert (Website-Restrukturierung oder Zusammenführung verschiedener Websites).
- Es müssen verschiedene Seiten ähnlichen Inhalts konsolidiert und auf eine „kanonische“ Seite umgeleitet werden, um Duplicate Content zu vermeiden.
- Es wurde eine Seite entfernt und Nutzer sollen auf eine andere Seite (z. B. ein aktuelleres Produkt) weitergeleitet werden.
In allen diesen Fällen sind 301-Redirects das Mittel der Wahl. Falls Sie für Ihre Website den Webserver Apache (Apache-Server) einsetzen, können Sie solche permanenten Weiterleitungen leicht per .htaccess einrichten.
Sie suchen eine hochperformante Hosting-Lösung für anspruchsvolle Webseiten? Webhosting Plus bietet Ihnen dedizierte Ressourcen für sichere und stabile Leistung.
Jetzt WordPress-Jubiläumsangebote sichern!
Was ist die .htaccess?
Die .htaccess gilt bei Profis als Geheimwaffe für Website-Admins. Dateien mit dem Namen .htaccess (ohne Endung, der Punkt am Anfang kennzeichnet in der Unix-Welt versteckte Dateien) sind Server-Konfigurationsdateien für Webserver, insbesondere für Apache. Dieser übernahm das Konzept der .htaccess-Dateien vom Webserver NCSA httpd, der in den Anfangszeiten des WWW eine Zeitlang das Internet dominierte und als Basis für die Apache-Entwicklung diente. Wichtigster Anwendungskontext war bereits damals das Shared Hosting: Eine Webserver-Software ist für die Auslieferung mehrerer, voneinander unabhängiger Websites zuständig. Um diese individuell steuern zu können, sollte neben der zentralen Konfiguration (bei Apache über die httpd.conf) auch eine Konfiguration pro Verzeichnis möglich sein. Genau das leistet die .htaccess. Bei jedem Aufruf einer Seite prüft der Webserver sämtliche Verzeichnisse der Dateistruktur oberhalb des angeforderten Dokuments auf das Vorhandensein solcher Konfigurationsdateien, liest sie ein und überschreibt die Default-Vorgaben der zentralen Konfiguration mit den verzeichnisspezifischen Inhalten. Diese werden also sofort und ohne Neustart des Servers wirksam.
Die Integration und Erklärung einer .htaccess-Datei
Hier sehen wir ein Beispiel einer generischen .htaccess-Datei:
# Aktiviere Rewrite Engine RewriteEngine On # Einstellungen für Error-Dokumente ErrorDocument 404 /fehlerseite.php ErrorDocument 500 /fehlerseite.php # Einstellungen für PHP AddHandler application/x-httpd-php .php php_value upload_max_filesize 64M php_value post_max_size 64M # Einstellungen für Datei- und Verzeichniszugriff Options -Indexes deny from all # Setzen von Standard-Indexdateien DirectoryIndex index.html index.htm index.php # Umleitungen Redirect 301 /alte-seite.html /neue-seite.html RewriteRule ^alte-seite2\.html$ /neue-seite2.html [R=301,L]
Diese generische .htaccess-Datei enthält Einstellungen für die Rewrite Engine, für Error-Dokumente, PHP, den Datei- und Verzeichniszugriff, Standard-Indexdateien und Umleitungen. Die Einträge in den .htaccess-Dateien unterscheiden je nachdem, welche Einstellungen damit vorgenommen werden sollen.
Spezialfall http 301-Redirect
Im folgenden Beispiel wird die Rewrite Engine aktiviert und die RewriteRule-Anweisung erstellt eine Weiterleitung von der alten URL "/alte-seite.html" zur neuen URL "/neue-seite.html".
RewriteEngine On RewriteRule ^alte-seite.html$ /neue-seite.html [R=301,L]
Der Flag "R=301" gibt an, dass eine 301-Weiterleitung durchgeführt werden soll, während der Flag "L" ergänzt, dass keine weiteren Regeln angewendet werden sollen, wenn diese Regel erfüllt ist.
Wenn ein Besucher die alte URL "/alte-seite.html" aufruft, wird er automatisch zur neuen URL "/neue-seite.html" weitergeleitet und erhält einen HTTP-Statuscode 301, der Suchmaschinen und Browsern mitteilt, dass die alte URL dauerhaft auf die neue URL umgeleitet wird.
.htaccess erstellen und bearbeiten
Voraussetzung für eine Nutzung der .htaccess ist, dass Ihr Provider diese in der zentralen Konfiguration freigeschaltet hat. (Welche .htaccess-Features in verschiedenen Tarifen von DomainFactory verfügbar sind, finden Sie hier.) Häufig (z. B. bei WordPress) ist auf Ihrem Webspace bereits eine .htaccess-Datei vorhanden. Um eigene .htaccess-Funktionen zu nutzen, müssen Sie diese lediglich mit einem Texteditor bearbeiten. Sollte Ihr FTP-Programm keine .htaccess anzeigen, prüfen Sie bitte, ob dieses eventuell versteckte Dateien ausblendet. (Achtung: Wenn Sie Änderungen an einer .htaccess-Datei vornehmen, machen Sie bitte vorher ein Backup – Syntax-Fehler führen schnell zu einem Server Error 500).
Ist tatsächlich keine .htaccess-Datei vorhanden, erstellen Sie eine Textdatei und speichern Sie per FTP auf Ihrem Webspace. Sie können diese Datei „.htaccess“ nennen, denn das ist der in der Apache-Konfiguration voreingestellte Standardname (theoretisch könnte Ihr Provider aber auch eine andere Benennung vorgeben).
Die Direktiven (Befehle für eine spezifische Aufgabe oder Einstellung) in der .htaccess gelten stets für das Verzeichnis, in dem die Datei liegt, inkl. aller Unterverzeichnisse – solange dort nicht eine eigene .htaccess-Datei liegt, denn diese überschreibt die Vorgaben von .htaccess-Dateien in darüber liegenden Verzeichnissen.
post_ads
Weiterleitungen per .htaccess: mod_alias und mod_rewrite
Anders als der Name suggeriert, kann über die .htaccess weit mehr konfiguriert werden als nur Zugriffseinstellungen. Zu beachten ist aber, dass ein großer Teil der Funktionalität des Apache-Webservers in kompilierten Modulen steckt. Für Weiterleitungen per .htaccess-Datei können Sie die Module mod_alias und mod_rewrite nutzen.
mod_rewrite ist ein Erweiterungsmodul zur flexiblen Manipulation von URLs mittels sogenannter Rewrite-Regeln. Das „Umschreiben“ kann URLs auf Dateipfade abbilden, aber auch auf andere interne oder externe URLs, interne Proxies bzw. Weiterverarbeitungen oder Fehlerseiten umleiten. In Ihrer .htaccess können Sie dieses Modul nur nutzen, wenn es in der Konfiguration von Apache geladen und aktiviert wurde. Infos darüber liefert die PHP-Funktion phpinfo().
Im Netz finden Sie häufig Anleitungen, die selbst für einfache Umleitungen mod_rewrite nutzen. Wir empfehlen dagegen bei einfachen URL-Manipulationen die „Redirect“-Direktive des Apache-Basismoduls mod_alias. Das Modul mod_rewrite ist zwar wesentlich mächtiger, erfordert aber auch mehr Know-how. So können schnell Syntaxfehler entstehen, wenn man sich nicht mit regulären Ausdrücken auskennt. Außerdem muss mod_rewrite erst aktiviert werden, mod_alias ist standardmäßig aktiv.
Weiterleitungen per Redirect- oder RedirectPermanent-Direktive
Redirect fordert beim Aufruf eines passenden URL-Pfades den Browser auf, die Ressource über eine andere URL anzufordern. Die Direktive erwartet die Angabe der neuen URL und optional den alten URL-Pfad und einen Status. Syntax:
Redirect status alter_URL-Pfad URL
Der alte URL-Pfad (d. i. der Teil der URL nach Hostname + Port, case-sensitiv) beginnt mit einem Slash (/). Die neue URL geben Sie am besten als absoluten Pfad an.
❗ Achtung: Default-Einstellung für den Statuscode [status] ist „302“ bzw. „temp“ (temporäre Weiterleitung) – 301-Redirects müssen deshalb explizit mit „permanent“ oder „301“ angegeben werden!
Einige Beispiele:
# Redirect auf eine neue Seite
Redirect 301 /altes-verzeichnis/alte-seite.html www.meine-domain.tld/neues-verzeichnis/neue-seite.html
# Redirect auf ein neues Verzeichnis
Redirect 301 /altes-verzeichnis/ www.meine-domain.tld/neues-verzeichnis/
Anstelle von „Redirect permanent“ können Sie auch die Direktive „RedirectPermanent“ verwenden. So stellen Sie sicher, nicht versehentlich eine temporäre Weiterleitung zu veranlassen:
# Redirect aller Seiten bei Umzug auf eine neue Domain (Navigationsstruktur bleibt gleich)
Redirect 301 / neue-domain.tld
# Redirect aller Seiten bei Umzug auf eine neue Domain (geänderte Navigationsstruktur, daher Weiterleitung auf Startseite)
Redirect 301 / neue-domain.tld/startseite.html
Achtung: Redirect-Anweisungen werden nacheinander abgearbeitet, wobei zuerst gelistete Anweisungen Priorität haben – passt die Pfadangabe zu einem Aufruf, wird die entsprechende Anweisung ausgeführt und weitere ignoriert. Betreffen mehrere Anweisungen die gleichen Pfade (z.B. /verzeichnis1/datei sowie /verzeichnis1), sollten spezifischere Pfade zuerst aufgeführt werden.
Mehr Informationen zu Redirect und anderen Direktiven von mod_alias finden Sie hier.
Weiterleitungen per RewriteRule
Das Modul mod_rewrite akzeptiert eine unbegrenzte Anzahl von Regeln (RewriteRule) und Regelbedingungen (RewriteCond), um zum Beispiel Weiterleitungen in Abhängigkeit von Server- oder Umgebungsvariablen, HTTP-Headern oder Zeitstempeln zu definieren. Die Direktive RewriteRule eignet sich auch für sehr komplexe Aufgabenstellungen. Der folgende Abschnitt kann nur eine kurze Einführung zum Modul geben. Weiterführende Informationen zum Funktionsumfang von mod_rewrite finden Sie hier und hier.
Bevor Sie das Modul in Ihrer .htaccess-Datei nutzen können, müssen Sie mod_rewrite mittels der Direktive „RewriteEngine“ aktivieren:
RewriteEngine on
Es kann zudem erforderlich sein, das Startverzeichnis für die Rewrite-Anweisungen anzugeben. Das erfolgt per „RewriteBase“, z. B.
RewriteBase / RewriteBase /startverzeichnis
„RewriteRule“-Direktiven werden ebenfalls der Reihe nach abgearbeitet. RewriteRule erwartet einen regulären Ausdruck für die Ausgangs-URL, deren Ersetzung sowie optionale Flags zum Beispiel für den Statuscode des Redirects (R=301) oder das Stoppen des Rewrite-Prozesses („Last“/ L). Syntax:
RewriteRule Suchausdruck Ersetzung [flags]
Die Regel wird angewendet, wenn der vom Browser angeforderte URI (bzw. der Teil unterhalb des Startverzeichnisses) zum Suchausdruck passt und eventuelle Bedingungen, angegeben per „RewriteCond“, zutreffen. Auch RewriteCond kennt Flags, z. B. „nocase“ (NC) oder „ornext“ (OR) für logische ODER-Verknüpfung mit der nächsten Bedingung (Default ist UND). Hier ebenfalls einige Beispiele:
# Redirect mit Entfernung von www für alle Seiten von domain.tld
RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC] RewriteRule ^(.*)$ domain.tld/$1 [L,R=301]
# Redirect auf www für alle Seiten von domain.tld außer robots.txt und sitemap.xml
RewriteCond %{REQUEST_URI} !^/(robots\.txt|sitemap\.xml)$ RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ [NC] RewriteRule ^(.*)$ www.domain.tld/$1 [R=301,L]
# Redirect von http auf https für alle Seiten, wenn Aufruf nicht auf Port 443 erfolgt
RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) %{HTTP_HOST}/$1 [R=301,L]
# Redirect aller Seiten – mit und ohne www – bei Umzug auf neue Domain
RewriteCond %{HTTP_HOST} ^domain\.tld$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.domain\.tld$ [NC] RewriteRule ^(.*)$ www.neue-domain.tld/$1 [L,R=301]
Zum Abschluss noch ein Tipp: Wenn Sie nicht wissen, ob in der Installation Ihres Providers rewrite_mode (oder ein anderes benötigtes Modul) installiert bzw. geladen ist, können Sie das per <ifModule> prüfen und alle darauf bezogenen Anweisungen bedingt ausführen lassen:
<IfModule mod_rewrite.c> .. Anweisungen </IfModule>
Häufig gestellte Fragen zum HTTP 301-Redirect
Was ist ein HTTP 301-Redirect? Ein HTTP 301-Redirect ist eine Weiterleitung von einer URL zu einer anderen URL, die von Suchmaschinen und Browsern als dauerhaft angesehen wird.
Was ist der Zweck eines HTTP 301-Redirects? Der Zweck eines HTTP 301-Redirects besteht darin, Besucher von einer alten URL zu einer neuen URL zu leiten und gleichzeitig sicherzustellen, dass Suchmaschinen den neuen Inhalt indexieren. Die Zahl "301" im HTTP 301-Redirect-Statuscode gibt an, dass die Weiterleitung dauerhaft ist und Suchmaschinen die alte URL aus ihren Indexen entfernen sollten.
Wie erstellt man einen HTTP 301-Redirect? Ein HTTP 301-Redirect kann durch die Verwendung einer .htaccess-Datei, einer Programmierung im CMS oder durch Einstellungen in CMS-Erweiterungen vorgenommen werden.
Welche Auswirkungen hat ein HTTP 301-Redirect auf SEO? Ein gut durchgeführter HTTP 301-Redirect kann dazu beitragen, dass die Rankings der neuen URL steigen und die Rankings der alten URL auf ein Minimum reduziert werden.
Wie unterscheidet sich ein HTTP 301-Redirect von einem HTTP 302-Redirect? Ein HTTP 301-Redirect wird als dauerhafte Weiterleitung angesehen, während ein HTTP 302-Redirect als vorübergehende Weiterleitung angesehen wird.
Wie überprüft man, ob ein HTTP 301-Redirect ordnungsgemäß funktioniert? Sie können den HTTP-Statuscode der Seite überprüfen oder eine Server-Header-Abfrage durchführen, um sicherzustellen, dass der Statuscode 301 zurückgegeben wird.
Was sind die häufigsten Fehler bei der Verwendung von der HTTP 301 Redirection? Die häufigsten Fehler bei der Verwendung von HTTP 301-Redirects sind falsch konfigurierte Redirects, zu viele Redirects und fehlerhafte Umleitungen.
Wie lange dauert es, bis ein HTTP 301-Redirect von Suchmaschinen erkannt wird? Es kann einige Wochen dauern, bis Suchmaschinen den neuen Inhalt indexiert haben und den HTTP 301-Redirect vollständig erkannt haben.
Gibt es auch Plugins für die Bearbeitung der htaccess-Datei? Ja, die gibt es für praktisch alle gängigen Content-Management-Systeme, zum Beispiel das Plugin Htaccess File Editor für WordPress mit dem Sie auch ohne große Programmierkenntnisse die WordPress-htaccess-Datei bearbeiten können.
Titelmotiiv:: Unsplash