SEO Portal

301 Redirects – Mod_Rewrite: Beispiele für Weiterleitungen

Mod_Rewrite für SEO
Mod_Rewrite für SEO

301 Redirects sind wichtig. Je komplexer Webseiten werden und desto häufiger neue Inhalte produziert werden, desto mehr steigert sich auch der Einsatz von Weiterleitungen. In diesem Artikel geht es um die typischen 301 Redirects die SEOs benötigen und darum, was mit Mod_Rewrite sonst nützliches machbar ist.

Wir Suchmaschinenoptimierer glauben an die Dauerhaftigkeit von URLs. Diese sollten sich am besten niemals ändern, hängt an ihnen doch unsere geliebte Linkpower und allerlei soziale Signale. Ab und an lässt es sich jedoch nicht vermeiden, dass sich eine URL ändert. Dann versuchen wir diese mit einem 301 Redirect suchmaschinenfreundlich umzuleiten. Der clevere SEO nutzt dafür Mod_Rewrite. In diesem Artikel habe ich die gebräuchlichsten Mod_Rewrite Snippets aufgeschrieben, die ich so nutze.

Grundlagen

Wenn du Mod_Rewrite benutzen möchtest, dann muss es dein Webserver unterstützen. Heutzutage ist das fast überall Standard bei Hosting-Paketen und Servern, die auch PHP bereitstellen. Sollte irgendetwas nicht funktionieren, dann einfach den Hoster fragen. Mod_Rewrite wird normalerweise über eine Datei namens .htaccess gesteuert, die sich im Seiten-Rootverzeichnis und/oder auch in Unterverzeichnissen befinden kann. Beachte den führenden Punkt im Dateinamen. Dieser ist wichtig. Damit wird die Datei jedoch in einigen FTP-Programmen nicht angezeigt. Suche nach einer Option „Versteckte Dateien anzeigen“ oder „Dateien mit Punkt anzeigen“. Sollte die Datei fehlen, leg sie einfach leer an. Solltest du aktuelle Redaktionssysteme einsetzen, die sprechende URLs verwenden, dann geh davon aus, dass die htaccess-Datei schon existiert. Zum Starten muss Mod_Rewrite in der Datei aktiviert werden. Das machst du mit folgendem Code:

RewriteEngine On

Zur Sicherheit lege ich danach immer noch das Verzeichnis fest, auf welches sich die Regeln beziehen sollen:

RewriteBase /

Liegen die URLs, die du umleiten willst, in einem Unterverzeichnis, ist RewriteBase entsprechend anzupassen.

Mod_Rewrite und Mod_Alias

Der Apache-Webserver bringt nicht nur das Rewrite-Modul mit sich, sondern auch das Alias-Modul. Dieses enthält zwei sehr hilfreiche Werkzeuge namens Redirect und RedirectMatch. Ich nutze diese auch gern, da die Syntax einfacher ist, und finde deshalb, sie passen gut in diesen Artikel.

Eine Domain umziehen

Es passiert immer mal wieder, dass eine ganze Domain umziehen muss. Dann sollten möglichst alle Inhalte einfach auf der neuen Domain erreichbar sein. Mit den folgenden Zeilen ist das möglich:

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

Alles was auf domain.de erreichbar war, ist danach unter neue-domain.de erreichbar.

Alle Unterseiten der alten Domain auf die Startseite der neuen Domain

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

Doppelte Inhalte mit und ohne www vermeiden

Der gängigste Fall ist wohl der folgende: Eine Domain ist mit und ohne www erreichbar und bildet damit eine Gefahrenquelle für die Entstehung doppelter Inhalte bei Google. Mit einem Zweizeiler lässt sich das sehr einfach lösen:

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

Wenn die Domain ohne www-Standard sein soll, dann muss der Code so aussehen:

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

Ob mit oder ohne www ist eine ästhetische Frage. Das www ist ein Kropf aus vergangenen Internet-Tagen. Da sich die meisten Menschen jedoch an das www gewöhnt haben, empfehlen wir, die Domain immer mit www.domain.de als Standarddomain zu nutzen.

Datum aus URLs entfernen

Das CMS WordPress hatte lange Zeit als quasi Standard-URL eine Variante mit Jahr, Monat und Tag in den URLs. Die URLs sehen dann so aus: http://www.domain.de/2014/03/23/beitragstitel/. Wenn du damit gestartet bist dann willst du diese URLs vielleicht irgendwann umstellen. Mit der folgenden Codezeile geht das ganz einfach:

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ http://www.domain.de/$4

Eine URL ändern

Du möchtest http://www.domain.de/eine-url/ zu http://www.domain.de/eine-neue-url/ mit einem Redirect weiterleiten, damit Google erkennt, dass die Seite umgezogen ist? Das lässt sich mit einer Zeile lösen:

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

Diese Regel funktioniert sehr gut für eine einzelne URL.

Eine Domain auf eine andere weiterleiten und das Verzeichnis dahinter beibehalten

Hier geht es darum, http://www.domain.de/verzeichnis/ auf http://www.domain2.de/verzeichnis/ weiterzuleiten. Also alles hinter .de/ beizubehalten und weiterzuleiten. Das ist relativ einfach:

RedirectMatch permanent ^/verzeichnis/ http://www.domain2.de/verzeichnis/

Alle Verzeichnisse einer Domain auf eine andere Domain umleiten

Alle Verzeichnisse auf einer Domain so wie http://www.domain.de/verzeichnis1/ oder http://www.domain.de/verzeichnis2/ sollen auf eine neue Domain http://www.domain2.de/ umgeleitet werden.

RewriteRule ^(.*)$ http://www.DOMAIN2.de/index.html [L,R=301]

Ordner in der URL umschreiben

Auf einer Domain soll ein Ordner geändert werden. Also http://www.domain.de/verzeichnis/datei.html soll zu http://www.domain.de/anderes-verzeichnis/datei.html werden. Das geht mit folgender Zeile:

RewriteRule ^verzeichnis/(.*)$ /anderes-verzeichnis/$1 [R=301,L]

Pagespeed erhöhen

Die htaccess-Datei kannst du nutzen, um die Geschwindigkeit deiner Seite zu verbessern. Schnellere Seiten führen zu zufriedeneren Besuchern. Im Folgenden zeige ich ein paar Codeschnipsel, mit denen sich die Komprimierung der übertragenen Seiten sowie das Browsercaching für statische Seiten aktivieren lassen. Nicht jeder Server unterstützt diese Einstellungen. Du solltest daher in einem Verzeichnis oder Testsystem vorher prüfen, ob es bei dir klappt. Beide Lösungen haben übrigens nichts mehr mit mod_rewrite zu tun, passen aber gut zu diesem Thema.

gzip-Komprimierung aktivieren

Durch die folgenden Zeilen aktivierst du für verschiedene Dateitypen die Komprimierung. Die Dateien werden vor dem Ausliefern verkleinert. Das spart Bandbreite und beschleunigt die Übertragung zum Besucher:

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-shockwave-flash

Browser-Caching aktivieren

Damit Browser Dateien in deinem Cache ablegen, kann der Server an den Browser Informationen senden, wie lange eine Datei gecacht werden soll und kann. Ruft der Besucher eine weitere Seite bei dir auf, die zum Beispiel das Logo und andere Bilder erneut enthalten, werden diese aus dem Cache geladen. Das spart Ladezeit und Bandbreite. Mit den folgenden Zeilen weist du den Dateitypen Zeiten zu, wie lange diese gecacht werden dürfen. Bitte passe die Zeiten an deine Bedürfnisse an:

ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
#ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresDefault "access plus 14 days"

Bei Fragen zu diesen Regeln hinterlasse einfach einen Kommentar unter dem Artikel.

Du möchtest aktuelle Informationen rund um Online-Marketing? Jetzt kostenlos eintragen.
René
Über René 9 Artikel
Selbst verstehe ich mich als Online-Enthusiast, denn ich mag diese technische Errungenschaft sehr. Daher plädiere ich für einen ordentlichen Umgang, denn wir haben nur ein Internet :P

13 Kommentare zu 301 Redirects – Mod_Rewrite: Beispiele für Weiterleitungen

  1. Vielen Dank für die hilfreiche Übersicht.

    Wie entferne ich denn ein Verzeichnis aus einer Url?

    domain.de/verzeichnisa/verzeichnisb/artikelname.html
    zu
    domain.de/verzeichnisb/artikelname.html

  2. Und das ^verzeichnis/(.*)$ bedeutet alles was zwischen ^ $ ist das Suchmuster. In diesem Fall also betrifft das alle Verzeichnisse die nach verzeichnis/ kommen, egal wie Sie benannt wurden.

  3. Doppelte Inhalte mit und ohne www vermeiden
    was muss ich denn in der htaccess Datei ändern oder entfernen um diesen o.g. zweizeiler einzufügen damit die Seite mit www. aufrufbar ist? Vielleicht komische Frage, aber ich bin Anfänger in diesen Sachen.

    LG
    Jürgen

  4. Hallo,
    ich würde gerne /reg.php?uc=xyz nach /x/y/z/dateiname.php?uc=xyz umleiten, ohne dass man die neue Struktur sehen kann, also quasi das alte sichtbar bleibt. Ist das möglich und wie?
    Vielen Dank im voraus
    Gruß
    Uwe

1 Trackbacks & Pingbacks

  1. Billigstmögliche SMX, Search Console und ambivalente Deutsche - Allgemein -SEO Book

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*