Digital Lifestyle

.htaccess Weiterleitung

Eine Weiterleitung wird immer dann benötigt, wenn eine Seite die Adresse gewechselt hat, dabei ist es egal ob nun die kompletten Domain unter einer anderen Adresse steht oder nur ein einzelnes Dokument.

Nun gibt es zwei Wege ein Dokument weiterzuleiten, entweder über die schlechte Clientseitige Weiterleitung (meta tag, javascript oder sonstiges). Oder die gute über den Webserver (Apache).

Per Webserver kann man jetzt in der .htaccess Datei entweder einen 301 oder einen 302 Status Code senden. Der 301 Status Code ist der bessere von beiden, er signalisiert den Client, das die permanent verschoben wurde.

301 – Moved Permanently

Um nun eine einzelne Datei zu verschieben, muss man eine .htaccess Datei in das Webverzeichnis legen und folgende Zeilen dort eintippen:

.htaccess Datei:

Redirect 301 /verzeichnis/datei.html http://www.domain.de/neueDatei.html

Nach dem Redirect 301 wird das umzuleitende Verzeichnis angegeben, danach kommt ein Leerzeichen und danach wird die Ziel Adresse eingeben.

Wenn man nun /verzeichnis/datei.html im Browser aufruft, wird man zu http://www.domain.de/neueDatei.html weitergeleitet. Der Vorteil dieser Methode ist, das der PageRank bei Google nicht verloren geht. Google überträgt den PageRank der Seite auf die neue Seite, das ist gerade interessant wenn die alte Seite schon verlinkt wurde.

Um eine komplette Domain auf eine andere Datei oder Domain weiter zuleiten gibt man folgende Zeilen in die .htaccess Datei ein:

.htaccess Datei:

RedirectPermanent / http://neueDomain.de

Die schönere Domainweiterleitung

Viel eleganter dagegen ist diese Weiterleitung:
.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST}   !^http://example.org    [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

Hierbei wird jede Seite auf jede dazu gehörige Unterseite weitergeleitet.

In Zeile 2 muss man seinen alten Domainnamen eintragen und in Zeile 3 seinen neuen.

Beispiele:

  1. http://example.org –> http://example.com/
  2. http://example.org/home.html –> http://example.com/home.html
  3. http://example.org/sub/dir/file.html –> http://example.com/sub/dir/file.html

Alle Weiterleitungen sind natürlich 301 und dadurch extrem suchmaschinenfreundlich, da direkt auf die passende Unterseite weitergeleitet wird.

20 Comments

  1. Risaer

    die kathegorie soll wohl PROgrammierung heissen ?? 🙂

  2. danza

    Hast du Recht 😉 Tippfehler meinerseits, ist ausgebessert 😉

  3. Schwimmbeckenshop

    Ich habe in der .htaccess schon eine Umleitung drin:

    RewriteEngine on

    RewriteCond %{QUERY_STRING} ^$
    RewriteCond %{THE_REQUEST} /index\.php
    RewriteRule ^index\.php http://domain.de/ [R=301,L]

    Durch einen kleinen Unfall sind meine Seiten in Google nicht nur unter der Domain gelistet, sondern auch unter dem Hostnamen meines Servers.(doppelter Content)

    http://xxx.stratoserver.net

    Wie kann ich in die .htaccess noch eine weitere Umleitung einbauen von xxx.stratoserver.net nach domain.de?

  4. danza

    Sorry das ich erst so spät antworte, hat sich wahrscheinlich bei dir schon erledigt, aber trotzdem:

    RewriteEngine on

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

    RewriteCond %{QUERY_STRING} ^$
    RewriteCond %{THE_REQUEST} /index\.php
    RewriteRule ^index\.php http://domain.de/ [R=301,L]

    Wird vor deinen Rules eingebaut, da dein letztes eine [L] Rule ist also Last, dadurch würde wenn deine Regel greift nichts mehr dort hinter ausgeführt.

  5. Cami

    Moin, ich brauche bitte Deine Hilfe. Ich wollte von wittcami.wordpress.com auf wittcami.de umleiten, jetzt ist alles hin…wittcami.de geht auf wordpress. Den Code habe ich schon gelöscht, trodzdemm geht das nicht.Wie kann ich es rückgänging machen bitte? Vielen Dank!

  6. danza

    Hallo Liebe Cami,

    ich weiß nicht welche Möglichkeiten man bei WordPress.com hat um seine Webseite umzuleiten. Ich bezweifle das man Zugriff auf seine .htaccess Datei hat, denn sonst wäre es sehr einfach, nur den folgenden Text in die htaccess Datei bei wittcami.wordpress.com:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^http://wittcami.wordpress.com [NC]
    RewriteRule ^(.*)$ http://wittcami.de/$1 [R=301,L]

    Ich denke das es dort nicht so einfach geht, wenn du magst kannst du dich gerne per Mail unter jannik@d4nza.de melden, Facebook oder ICQ oder so, und ich würde mal sehen ob ich dir dann helfen kann.

    Gruß
    danza

  7. Cami

    Post. Vielen Dank! Einen schönen Abend

  8. Thomas K.

    Hallo,

    habe ein Problem mit dem rewriterules und kann das Problem einfach nicht erkennen.

    Es gibt mehrere Rules in der htaccess

    RewriteRule ^neu(.*)$/ index.php?d=neu
    RewriteRule ^kats(.*)$ index.php?d=kats

    beide index verweise funktionieren wenn ich sie von Hand eingebe, kats wird auch korrekt umgesetzt, jedoch nicht neu.

    wenn in der Adresszeile des Browsers http://schlagmichtod/kats kommt setzer er korrekt um in http://schlagmichtod/index.php?d=kats
    Jedoch nicht wenn in der Adresszeile des Browsers http://schlagmichtod/neu dort steht. http://schlagmichtod/index.php?d=neu direkt eingegeben funktioniert aber auch.

  9. danza

    Hallo,

    wenn man genau hin sieht sind es auch zwei verschiedene:

    RewriteRule ^neu(.*)$/ index.php?d=neu
    RewriteRule ^kats(.*)$ index.php?d=kats

    bei kats fragst du mit “kats(.*)” ab, eine URL die mit kats beginnt und danach dürfen beliebe Zeichen folgen (.*) oder eben keine kommen.

    bei neu fragst du mit “neu(.*)/” ab, eine URL die mit neu beginnt, dann kanne in beliebiges Zeichen kommen und endet auf /.

    gruß
    danza

  10. Hansi

    sonst gehts euch noch gut? Was wollt Ihr mit den 1000 SPAM Suchbegriffen erreichen? Eurer Blog bleibt trotzdem Bullshit!

  11. danza

    Das mag vielleicht sein, aber trotzdem hast du die Webseite gefunden, nicht wahr?

  12. Ulrich Doser

    Hallo,
    wäre sehr dankbar für eine Hilfe.

    Möchte gerne mit .htaccess eine 301-er Umleitung konfigurieren.
    Habe dazu nicht gefunden.

    Auf der Hauptdomain funktioniert das bereits einwandfrei:

    RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.html
    RewriteRule ^index\.html/?(.*) /$1? [L,R=301]

    ABER in Verzeichnise nicht – also:
    http://domain.de/verzeichnis/index.html
    Diese soll umgeleitet werden zu:
    http://domain.de/verzeichnis/

    Natürlich funktioniert das im Brower einwandfrei.
    Mir geht es hier um Doppelkonten, da beideURL den gleichen Inhalt haben.
    Und wegen der Schönheit 🙂

    DANKE!

  13. alexSLS

    Hallo Leute,

    bin leider nicht so der Spezialist, deshalb meine Frage, wie die Weiterleitung bei mir aussehen müsste. Ich habe meine Homepage in einem Ordner namens “v11” – jetzt möchte ich mir ne neue Homepage anlagen und diese in den Ordner “v12” setzten.

    Da ich mein WordPress Script eins zu eins übernehmen möchte, sollte die Weiterleitung von “http://www.meinedomain.de/v11/” zu “http://www.meinedomain.de/v12/” weiterleiten. Allerings sollen auch alle Artikel erreichbar bleiben.

    Also wenn man z.b. den Artikel “http://www.meinedomain.de/v11/?p=764” aufruft, soll man direkt auf “http://www.meinedomain.de/v12/?p=764” weitergeleitet werden.

    Kann mir da jemand helfen, wie ich dies mit der 301 Weiterleitung umsetzen kann?!

    Danke im Voraus,
    alexSLS

  14. danza

    Hallo alexSLS,

    deine Weiterleitung in der .htaccess müsste wie folgt lauten:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^http://www.meinedomain.de/v11/ [NC]
    RewriteRule ^(.*)$ http://www.meinedomain.de/v12/$1 [R=301,L]

    Alle Anfragen von v11 werden dann in das Unterverzeichnis v12 weitergeleitet.

    Gruß
    danza

  15. Ingo Siebeck

    Kurz und bündig erklärt 🙂 Klappt wunderbar. Vielen Dank

    Ingo Siebeck, Kalandro Solutions

  16. Felix Rizo-Patron

    sehr verständlich erklärt, danke!

  17. loki

    Hi,

    bin gerade dabei eine Webseite auf eine neue Domain umzuziehen. Problem dabei ist das Ursprungs und Zielpfade nicht identisch sind.

    Das heißt für mich, dass ich jede Einzelseite per Redirect 301 auf das neue Ziel weiterleiten werde.
    Das ist zwar viel Arbeit, aber das macht mir nichts aus.

    Jetzt bin ich dabei auf folgendes Problem gestoßen. Es gibt einige Themenbereiche/Kategorien, die es auf der neuen Seite nicht mehr gibt.
    Frage:
    Was macht man in Sachen Redirect Weiterleitungen, wenn die alte Seite viele Inhalte hat, die es auf der neuen Seite nicht mehr gibt?

    Lasse ich diese dann bei den Weiterleitungen (Redirect 301) weg oder setze ich das >Redirect-Ziel z.B. auf die Startseite oder eine 404er?

    Dazu habe ich im Internet bisher leider nichts Verwertbares gefunden.

    Lieben Dank

  18. danza

    Das ist Geschmackssache, ich würde entweder per 301 auf eine ähnliche Seite Weiterleiten, die in etwa das selbe Thema hat, oder ich würde per 301 auf die Startseite linken, sodass man noch etwas von dem alten “Seitenwert” auf die Startseite gutgeschrieben bekommt.

    404 ist meiner Meinung nach die schlechteste Lösung.

    Gruß
    danza

  19. roman

    Interessanter Artikel. Wie muss ich nun aber vorgehen, wenn ich eine neue Domain auf eine alte bestehende Seite umleiten will, ohne dass das Ranking der alten Seite beeinflusst wird?

    Danke, Gruss Roman

  20. Daniel

    Hi, das ist sehr schön geschrieben und dargestellt, aber bei mir funktioniert das leider nicht. Meine Problemstellung ist etwas anders: Die Webseite ist gleich geblieben. Ich möchte von bisher http:// nach https:// weiterleiten. Alle Links sind gleichgeblieben. Dann müsste ich quasi

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

    oder?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2021 Jannik Strelow

Theme by Anders NorenUp ↑