Htaccess Redirects – 301 Dauerhafte Weiterleitungen

Was ist eine htaccess Weiterleitung (engl. redirect)?

Eine htaccess ist quasi als Steuerungsdatei Ihres Webserver zu sehen.

In der htaccess Datei werden zentrale Regeln und Einstellungen definiert und die Verarbeitung der Datei findet vor dem Aufruf der eigentlichen Webseite statt.

Hier können und sollten Sie die Weiterleitungen konfigurieren die Ihre Webseite betreffen. Content Management Systeme wie WordPress, Joomla, Typo3 und Co. bieten zwar auch automatische Möglichkeiten zur Konfiguration von Weiterleitungen an, diese sind aber meist nicht flexibel genug um alle Szenarien abzudecken.

Um nur eine zentrale Pflege der Weiterleitungen (Redirects) zu gewährleisten sollten Sie daher nur mit der .htaccess Datei arbeiten und evtl. Weiterleitungsoptionen Ihres CMS deaktivieren um Konflikte zu vermeiden.

Hinweis: Eine .htaccess Datei gibt es nur bei Apache Webservern basieren auf Linux Systemen. Apache Webserver sind weltweit am häufigsten im Einsatz und es ist sehr wahrscheinlich das auch Ihre Webseite einen solchen Webserver verwendet.

Bitte seien Sie vorsichtig wenn Sie Änderungen in der .htaccess Datei vornehmen, da Syntaxfehler unter Umständen die ganze Webseite offline nehmen können. Unbedingt vorher eine Sicherung der Datei erstellen und die Datei nur mit Texteditoren bearbeiten.

Wann sollte ich Weiterleitungen einrichten?

Weiterleitungen sollten immer dann hinterlegt werden, wenn Besucher oder Suchmaschinen auf URLs landen, die nicht „mehr“ vorhanden sind.

Dies kann unterschiedliche Ursachen haben. Meist ändert sich bei einem Relaunch der Webseite die Struktur von Datei und Verzeichnissen. Auch Änderungen die im laufe der Zeit an einzelnen Seiten oder Bereichen durchgeführt wurden können die URL Struktur verändert haben.

Vor allem bei Online Shops führt der ständige Wechsel von Produkten zwangsläufig zu fehlerhaften Verlinkungen.

Unterschiedliche Schreibweisen der URLs

Folgt

Fehlerhafte Verlinkungen überprüfen

Status Code 404 – Fehlerseiten

Was passiert, wenn Sie eine URL aufrufen welche nicht existiert?

Im schlimmsten Fall landen Besucher und Suchmaschinen irgendwo im nirgendwo und sehen die unschöne Meldung „Not Found“:
Webseite nicht gefunden - not found

Besser ist es in solchen Fällen eine Fehlerseite einzublenden, die dem Benutzer signalisiert das diese gewünschte Seite nicht vorhanden ist. Zumindest haben Sie so die Chance, dass der Besucher auf Ihrer Webseite bleibt.

HTTP Status Code 404 Beispiel

Fehlerseite liefern immer einen HTTP Status Code 404 zurück.

Interne Verlinkung

Prüfen Sie als erstes Ihre Webseite auf interne fehlerhafte Verlinkungen. Dies sollten Sie im Idealfall regelmäßig durchführen, da eine Webseite lebt und es ganz normal ist das Seiten sich verändern. Behalten Sie mit kostenlosen Tools einfach den Überblick über Ihre Webseite.

  • Xenu’s Link Sleuth
    http://home.snafu.de/tilman/xenulink.html
    Kostenlos, bitte lassen Sie sich von der etwas in die Jahre gekommen Webseite und dem Layout nicht irritieren. Die Software ist genial und findet alle defekten Links.
    Xenu Status Codes
  • Screaming Frog
    https://www.screamingfrog.co.uk/seo-spider/
    Kostenlos, allerdings können nur max. 500 Seiten abgefragt werden. Somit eignet sich die freie Version leider nicht für große Webseiten. Aber die Daten sind sehr übersichtlich dargestellt, viele Filter- und Editiermöglichkeiten runden das Bild ab.
    Screaming Frog Status Codes

Ziel – eine saubere interne Link-Struktur:

Alle internen Links sollten direkt auf die Zielseite zeigen, ohne vorherige interne Umleitungen. Dies entspricht dem HTTP Status Code 200 = OK.

Veraltete und nicht mehr funktionierende Links sollten angepasst oder gelöscht werden.

Defekte Links in der XML Sitemap

Beide Tools (Xenu & Screaming Frog) prüfen während des Crawls der Webseite nicht die XML Sitemap.

Wenn Sie eine XML Sitemap in Verwendung haben sollten Sie deren Links in jedem Fall auch überprüfen und die Links ggf. veraltete Links aktualisieren.

Externe Backlinks

Externe Backlinks sollten unabhängig einer möglichen Weiterleitung regelmäßig kontrolliert werden um ungewollte neue Links zu Ihrer Webseite rasch zu erkennen und mittels Google Disavow Tool zu entwerten.

Alte externe Links die einmal umgeleitet richtig sind verändern sich normal auch nicht mehr. Solange Sie also die Struktur Ihrer Webseite beibehalten müssen Sie nur neue evtl. falsche Verlinkungen prüfen.

Es gibt mehrere Möglichkeiten externe Links zu Ihre Domain zu prüfen.

Ziel – Liste eingehender Links erstellen:

Alle externen Links von anderen Webseiten sollte direkt mittels dauerhaftem 301 Weiterleitung auf die Zielseite weiterleiten. Mehrfachweiterleitungen oder auch  Weiterleitungsketten (engl. redirect chains) gilt es zu vermeiden.

Nutzen Sie dazu die vorhandenen Export Funktionen der jeweiligen Software.

Wie kann ich meine Weiterleitungen überprüfen?

Auch hierzu gibt es wieder viele kostenlosen Online Portale mit denen Sie schnell und einfach Ihre URLs abfragen können. Hierzu einfach die gewünschte URL in die Eingabemaske eintragen und los geht’s.

  • Techseo
    https://techseo.de/statuscodes/
    Schnell, übersichtlich und natürlich kostenlos – leider lässt sich kein User-Agent einstellen.
  • httpstatus von Sander Heilbron
    https://httpstatus.io/
    Schnell, übersichtlich und natürlich kostenlos – hat in ganz seltenen Fällen Probleme mit der Abfrage – kann dafür als Google Bot abfragen.

Unterschiedliche HTTP Status Codes für Weiterleitungen

Weiterleitung ist nicht gleich Weiterleitung! Es gibt mehrere Arten von Weiterleitung mit jeweils unterschiedlichem Status Codes, hier eine Übersicht der beiden wichtigsten:

  • Status Code 301 = Permanente Weiterleitung (engl. moved permanently)
    Die angeforderte URL ist nicht mehr verfügbar und zukünftig unter einer neuen URL erreichbar.
  • Status Code 302 = Temporäre Weiterleitung
    Die angeforderte URL ist vorübergehend nicht verfügbar und zwischenzeitlich unter einer anderen URL zu erreichen.
  • Status Code 300 & 303 bis 307
    Kommt zu selten vor und muss im Einzelfall geklärt werden.

 

Htaccess Weiterleitungen – Syntax Beispiele

Weiterleitungen aktiveren

Als erstes muss das Modul RewriteEngine aktiviert werden (Status On). Normalerweise ist der Eintrag bereits in der htaccess Datei vorhanden, sollte dies nicht der Fall sein bitte nachfolgende Code vor die erste Weiterleitungsregel einfügen.

RewriteEngine On

Es ist zwar kein Fehler, wenn Sie das Modul mehrfach aktivieren, Sie sollten aber generell versuchen Ihren Code strukturiert zu erstellen und Duplikate zu vermeiden 😉

Hinweis: Es wird in der htaccess Datei zwischen Groß- und Kleinschreibung unterschieden. Vermeiden Sie wenn möglich Großbuchstaben, Umlaute und Sonderzeichen in Ihren URLs.

Weiterleitungen einzelner URLs ohne Paramter

Der Syntax der Weiterleitungsregel ist sehr einfach aufgebaut.
1.) Die Anweisung „Redirect“ aufrufen
2.) Den Status-Code mit welchem weitergeleitet werden soll (üblicherweise 301)
3.) URL der nicht mehr vorhandenen Seite / Datei
4.) URL des Ziels auf welches die alte URL weiterleiten soll

Code Beispiele:

Redirect 301 /alte-url.php http://www.domain.de/neue-url.html
Redirect 301 /alte-url.php http://www.domain.de/neues-verzeichnis/neue-url.html

Redirect 301 /verzeihnis-alt/ http://www.domain.de/verzeichnis-neu/
Redirect 301 /verzeihnis-alt/ http://www.domain.de/verzeichnis-neu/neue-url.html

Weiterleitungen von URLs mit Sonderzeichen

Ein häufiges Problem stellt die korrekte Weiterleitung von URLs mit Sonderzeichen dar. Aber auch hierfür gibt es eine Lösung in der htaccess Datei.

Umleitung mit Fragezeichen und Gleichheitszeichen: http://www.ihredomain.de/alter-datei-name.html?src=parameter

RewriteCond %{QUERY_STRING} .*parameter$
RewriteRule .* http://www.Ihredomain.de/dateiname.html? [L,R=301]

Weiterleitungen spezieller Dateitypen

folgt

Weiterleitungen mit URL-Wildcards

folgt

Weiterleitungen von WWW

Gängige Praxis ist das Webseiten mit www angegeben werden. Dies ist aber nicht zwingend notwendig und eine persönliche Geschmackssache.

Wichtig ist nur, dass Sie sich für eine Version entscheiden und entweder alle URL Aufrufe mit oder ohne www auf Ihre entsprechende gewünschte Version umleiten.

Um auf Nummer sicher zu gehen Fragen Sie am besten Google und prüfen Sie wie viele seiten jeweils im Index sind.

Abfragen (Domain Name tauschen):

Prüfen Sie im zweiten Schritt mit den oben genannten Tools eine beliebige Unterseite ob die URL ohne/mit www entsprechend umleitet.

Code Beispiel – Umleitung nicht-www auf www:

RewriteCond %{HTTP_HOST} !^www.domain.de
RewriteRule (.*) http://www.domain.de%{REQUEST_URI} [R=301,L]

Code Beispiel – Umleitung www auf nicht-www:

RewriteCond %{HTTP_HOST} ^www.domain.de
RewriteRule (.*) http://domain.de%{REQUEST_URI} [R=301,L]

Weiterleitungen von Sub-Domains

Die Weiterleitung von Sub-Domains läuft sehr ähnlich wie die WWW Weiterleitung ab. WWW ist genau genommen nichts anderes als eine Sub-Domain.

Code Beispiel – Umleitung Sub-Domains auf eine andere Domain

RewriteCond %{HTTP_HOST} ^subdomain.domain.de
RewriteRule (.*) http://neuesubdomain.neuedomain.de%{REQUEST_URI} [R=301,L]

Code Beispiel – Umleitung Sub-Domain auf eine andere Sub-Domain

RewriteCond %{HTTP_HOST} ^subdomain.domain.de
RewriteRule (.*) http://neuesubdomain.domain.de%{REQUEST_URI} [R=301,L]

Weiterleitungen ohne Trailing-Slash am Ende

Auch URLs ohne Traling-Slash „/“ am Ende lassen sich Problemlos umleiten:

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

Weiterleitungen von HTTPS

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.ihredomain.de/$1 [R=301,L]

Weiterleitungen einer kompletten Domain

Wenn Sie Ihre Webseite auf eine andere Domain umziehen möchten oder Sie weitere zusätzliche Domains besitzen die keinen eigenen Inhalt bereit stellen, sollten Sie die kompletten Domains umleiten.

Code Beispiel:

RewriteCond %{HTTP_HOST} ^(www\.)?alte-domain\.net$ [NC]
RewriteRule ^(.*)$ http://www.neue-domain.de/$1 [R=301,L]

oder

RedirectPermanent / http://www.neue-domain.de/

Mehrfache Umleitungen (Weiterleitungsketten) vermeiden

Mehrfache Weiterleitungen (redirect chains) entstehen dann wenn mehrere Regeln für Umleitungen einer URL nacheinander verarbeitet werden.

Eine URL wird auf ein Ziel weitergeleitet welches nicht vorhanden ist und seinerseits nochmals auf eine andere URL Umleitet usw.

Häufigster Fehler ist, dass die SSL oder WWW Umleitung vor der eigentlichen individuellen URL Umleitung vom Webserver verarbeitet wird.

Die htaccess Datei wird stets von oben nach unten bearbeitet, daher müssen Sie individuelle Umleitungen vor den generellen (globalen) Umleitungen definiten.  Der Parameter „L“ steht für Last und legt fest dass keine weiteren Umleitungen mehr verarbeitet werden.

Leider machen dies Content Management Systeme standardmäßig falsch. Schalten Sie in solche einem Fall automatische Weiterleitungen ab und erstellen Sie das Regelwerk händisch.
Code 410 – entfernt „Redirect Gone /geloeschte-ressource.html“

 

 

Jetzt weitersagen ...