Für das Weiterleiten einer (alten) Seite auf eine neue empfiehlt Google und andere Suchmaschinen einen serverseitigen Redirect durch den HTTP-Status Code 301 (Moved Permanently).
Diese Art der Weiterleitung teilt den Suchmaschinen mit, dass die Seite permanent übersiedelt wurde und gibt auch die URL der neuen Seite an. Beim nächsten Crawl der Seite wird der Redirect gefunden und der Robot folgt diesem idealerweise und findet dadurch die neue URL der Web- oder Unterseite.
Aus SEO-Sicht ist nur die permanente Weiterleitung per 301 Redirect zu empfehlen, da diese auch den (meisten) Link Juice an die neue Domain oder Unterseite übergibt und diese im Idealfall dadurch die Rankings der alten Seite übernimmt.
Redirects sind sowohl per HTML, PHP, JavaScript als auch serverseitig möglich. 301 Redirects können zwar auch mittels PHP erstellt werden, für eine kürzere Ladezeit ist aber die Weiterleitung per .htaccess-Datei besser geeignet.
Ich gehe im folgenden nur auf Weiterleitungen per .htaccess-Datei (auf einem Webserver mit Apache) ein, da dies von den meisten Webservern unterstützt wird.
301 Redirect einer gesamten Domain
Hat sich die ganze Domain einer Webseite geändert, kann man die folgenden Zeilen in der .htaccess-Datei einfügen um wirklich Alles (Webseiten und alle Unterseiten) weiterzuleiten:
RewriteEngine on RewriteRule (.*) http://neue-domain.tld/$1 [R=301,L]
301 Redirect einzelner (Unter)seiten
Hat sich die URL einer einzigen Unterseite geändert, kann man diese so weiterleiten:
RewriteEngine on Redirect 301 /alte-seite.html http://domain.tld/neue-seite.html
Beachten Sie aber, dass die alte Unterseite per relativem und die neue per absolutem Pfad angegeben wird.
Das selbe Spiel können Sie auch für mehrere Redirects von Unterseiten machen. Geben Sie pro Zeile aber nur einen Redirect ein.
RewriteEngine on Redirect 301 /alte-seite.html http://domain.tld/neue-seite.html Redirect 301 /alte-seite2.html http://domain.tld/neue-seite2.html
301 Redirect der Startseite ohne Unterseiten
Auch wenn dieser Fall in der Praxis eher selten vorkommt, ist es dennoch gut zu wissen, wie man einen solchen Redirect richtig erstellt.
Eigentlich wäre die folgende Weiterleitung aus logischen Gründen in Ordnung, in der Praxis funktioniert diese aber nicht:
RewriteEngine on Redirect 301 / http://neue-domain.tld/
Auch wenn Sie keine Datei namens index.html in Ihrem Hauptverzeichnis haben, funktioniert diese Art der Weiterleitung so:
RewriteEngine on Redirect 301 /index.html http://neue-domain.tld/
301 Redirect von www auf nicht-www
Ich persönlich bevorzuge die nicht-www Version einer Webseite, da das www genau genommen eine Subdomain ist und ich die Webseite aber auf der Hauptdomain haben will. Was SEO betrifft ist es meiner Meinung nach vollkommen egal ob die Webseite mit oder ohne www erreichbar ist. Wichtig ist aber, dass die www auf die nicht-www Version der Webseite zeigt (oder eben umgekehrt).
Das erreichen Sie durch diese Zeilen in Ihrer .htaccess-Datei:
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
301 Redirect von HTTP auf HTTPS
Bei der Nutzung von HTTPS ist es notwendig, dass jede Unterseite entweder per HTTP oder per HTTPS erreichbar ist um Duplicate Content zu vermeiden. Durch 301 Redirects (permanente Weiterleitungen) kann man das gewährleisten.
In den meisten Fällen will man alle (Unter)seiten via HTTPS aufrufen. Dafür sind neben einem gültigen SSL-Zertifikat die folgenden zwei Zeilen in der .htaccess-Datei notwendig.
RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Mehr Informationen zu den vielen serverseitigen Einstellungsmöglichkeiten finden Sie im .htaccess Copy & Paste Cheatsheet.
Weiterleitungen mit PHP
Neben der serverseitigen Weiterleitung via .htaccess-Datei ist es auch möglich einen Redirect mit PHP durchzuführen. Ich persönlich nutze diese Methode nur selten, da ein Redirect per .htaccess schneller geht und auch mehr Möglichkeiten bietet.
Code für Weiterleitung mit PHP:
Speichert man diesen Code-Snippet in einer PHP-Datei ab und ruft diese am Server ab, wird man automatisch auf die URL https://pugstaller.com/
weitergeleitet. Diese Weiterleitung ist ein Redirect mit dem HTTP-Status Code 302 (Found).
301 Redirect mit PHP
Da wir aus SEO-Sicht eine Weiterleitung per HTTP-Status Code 301 (Moved Permanently) wollen, müssen wir folgenden Code verwenden:
Dadurch bekommen wir den erwünschten 301 Redirect per PHP.
Weiterleitungen dieser Art sind praktisch, da man einzelne Weiterleitungen dadurch erstellen kann ohne die .htaccess-Datei zu vergrößern und den Webserver zu verlangsamen.
Der große Nachteil liegt jedoch daran, dass man jeweils nur einen Redirect machen kann und eine seitenweite Weiterleitung um einiges aufwändiger ist als per .htaccess-Datei.
Interessanter Beitrag, sehr kurz und und sehr Informativ
Ist es auch möglich einmal die Index auf eine neue Url (testseite.com) und die unterseiten auf eine andere Url(seitentests.com) umzuleiten?
Hallo Thomas,
das ist möglich, aber man müsste jede Unterseite einzeln weiterleiten. Das würde dann in etwa so aussehen:
Interessant wäre noch zu erwähnen, dass eine 301 Umleitung im Falle einer Umstellung der Website auf https, zu einem Totalverlust aller positiven Werte führt. Einzig Alexa macht keinen Unterschied zwischen SSL und Non-SSL. Bei Majestic fängt man mit https praktisch wieder bei NULL an. Eine Umstellung auf SSL inklusive sofortiger 301 Umleitung auf https, reißt die Page ins Bodenlose. Deswegen rate ich jedem, die 301 Umleitung nicht sofort zu setzen. Besser ist es, dulicate Content für eine Übergangszeit zu riskieren und dann langsam neue Backlinks auf https aufzubauen. So nach 3 – 6 Monaten kann man dann die 301 von http auf https setzen.
Ich habe schon einige Webseiten von HTTP auf HTTPS weitergeleitet und konnte noch nie einen Verlust der Rankings beobachten. Selbst wenn man den „Umzug“ nicht in den Google Webmaster Tools vornimmt, bleiben die Positionen in den SERPs. Aus diesem Grund kann ich das Vorgehen mit dem Duplicate Content in der Übergangszeit nicht empfehlen.
Klasse Beitrag! Der Kommentar „Auch wenn Sie keine Datei namens index.html in Ihrem Hauptverzeichnis haben, funktioniert diese Art der Weiterleitung“ hat mir gerade sehr geholfen! 🙂 Herzlichen Dank!
Ja, mir auch. Habe es immer mit index.php probiert aber das hat nicht funktioniert. Nach der Info habe ich echt stundenlang gesucht. Vielen Dank!
Ein sehr schöner Artikel, für den Start in den Tag!
Das geht in PHP auch eleganter und ohne sich auf eine HTTP-Version festzulegen:
Vielen Dank für den Tipp! Ich habe deine Version im Artikel übernommen.
Wie müsste es denn heißen, wenn man alle Unterseiten zu einer neuen Domain auf die Startseite umleiten wollte und dabei nicht jede Unterseite auflisten möchte?
Beispiel:
http://www.altedomain.de
http://www.altedomain.de/seite1.html
http://www.altedomain.de/seite2.html -> http://www.neuedomain.de
http://www.altedomain.de/seite3.html
http://www.altedomain.de/seite4.html
Wenn man die Startseite und alle Unterseiten auf die Startseite einer neuen Domain weiterleiten möchte, muss man folgende Zeilen in die .htaccess schreiben:
Toller Beitrag! Auch ich habe nochmals eine Verständnisfrage (wegen Ranking/SEO).
-www.meineseite.de hat als Unterseite http://www.meineseite.de/uberuns.html
-nun möchte ich, dass diese „uberuns“-Unterseite so heißt: http://www.meineseite.de/philosophie.
In meinem Programm benenne ich die Unterseite um und lade sie auf den Server hoch.
1. Muss ich dazu ebenfalls den 301 redirect Code benutzen, oder reicht es, auf den Server die neue „philosophie“ Unterseite zu laden und die alte „uberuns“ Unterseite vom Server zu löschen, da sie über die Hauptseite http://www.meineseite.de sowieso nicht mehr existiert/auffindbar ist und dann die aktuelle sitemap hochzuladen?
2. Oder brauche ich auch da den 301 direct code, und dann befinden sich auf dem Server beide Unterseiten, sowohl „www.meineseite.de/uberuns.html“ als auch „www.meineseite.de/philosophie.html“ und ich darf die alte „uberuns“ nicht mehr löschen?
Vielen Dank.
LG
Vielen Dank!
Sie sollten zuerst die neue Unterseite hochladen, dann die folgenden Zeilen in der .htaccess einfügen:
Danach können Sie die alte Unterseite (http://www.meineseite.de/uberuns.html) löschen und eine neue Sitemap hochladen.
LG
ich finde das alles schon sehr gut erklärt, habe aber dennoch ein Verständnisproblem, man möge es mir verzeihen 🙂
Meine derzeitige webseite ist auf einem shopsystem gehostet, ich habe eine neue mit opencart erstellt. Die neue Seite wird die gleiche domain wie die derzeitige haben.
Die Struktur ist fast gleich, jedoch haben derzeit auf dem bezahlten shopsystem die meisten Seiten ein Kürzel, das vom System angehängt wird, z.B. -12-35-asp oder sowas
Bei meinem opencart system ist das nicht der Fall.
Muss ich nun wirklich jeden einzelnen Link der alten Seite einzeln eingeben (310 Redirect einzelner (Unter)Seiten ) oder gibt es einen einfacheren Weg?
Vielleicht habe ich eine Denkblockade, weil , der Domainname bleibt ja gleich, aber es ist ein komplett neues CMS was dahinter liegt.
Herzliche Grüße
Sabine
Ich befürchte du musst jede Unterseite einzeln weiterleiten. Dazu würde ich aber eine der Redirect Extensions für OpenCart verwenden, da du so die Weiterleitungen besser verwalten kannst.
Ich habe vor Jahren einige Unterseiten per .htaccess weitergeleitet. Jetzt bin ich dabei die kompletten Webseite auf responsiv zu stellen und dabei werden auch einige dieser Unterseiten namentlich verändert. Wie verhält sich jetzt die Weiterleitung?
Bleibt die alte Version in der Datei und ich schreibe die neue hinzu?
Oder, kann die alte Weiterleitung jetzt nach Jahren entfernt werden?
Vielen Dank!
Hallo Tina,
falls Backlinks auf die weitergeleiteten Unterseiten zeigen, würde ich diese Weiterleitungen solange wie möglich bestehen lassen bzw. diese aktualisieren sobald die neue Website online gestellt wird.
Dabei musst du nur das Ziel der derzeitigen Weiterleitungen an die Unterseiten der neuen Website anpassen und die aktuellen Unterseiten ebenfalls auf die neuen umleiten.
Da deine Weiterleitungen aber schon seit Jahren existieren, kannst du diese laut John Mueller von Google ruhig entfernen (ich würde das aber nicht machen).
Quelle: https://www.seroundtable.com/google-one-year-301-redirect-20893.html
Hallo Lukas, tolle Seite, aber trotzdem stehe ich an und vielleicht hast du einen Tipp für mich.
Ich habe eine Seite mit SSL ausgestattet und muss natürlich auf https weiterleiten. Gleichzeitig leite ich alles auf www um.
https funkt mit
aber die Weiterleitung http -> http://www nicht mehr seit SSL. Ich bin eher im PHP zu Hause, habe verschiedene – auch deine – Tipps ausprobiert, aber der Server leitet nicht auf www weiter.
Hast du noch eine Idee?
lg, Wolfgang
Hallo Wolfgang,
füge die folgenden zwei Zeilen in deiner .htaccess Datei ein:
Damit sollte die Weiterleitung auf die Subdomain www wieder funktionieren.
Eventuell kannst du dadurch sogar auf die von dir verwendeten Weiterleitungen verzichten. Bevor du die Änderungen übernimmst, teste diese aber sowohl am Desktop als auch am Handy, da manche Browser unter Android und iOS weniger Weiterleitungen als gewöhnliche Desktop-Browser zulassen.
Hallo Lukas,
du schreibst je mehr Einträge bzw. 301-Umleitungen in der .htaccess-Datei desto negativer wirkt sich das auf die Schnelligkeit des Webservers. Heißt das, dass sich das auf alle Domains/Webseiten, die sich auf dem Server befinden, auswirkt? Oder nur auf die Domain, zu der die .htaccess-Datei gehört? Ich möchte nämlich demnächst ein Projekt starten, wo ich ca. 100-150 301-Umeitungen in der .htaccess anlegen muss. Daher überlege ich mir die Umleitungen auf eine extra-Domain zu verlegen, um die Ladezeiten der Projekt-Webseite nicht zu vergrößern. Was denkst du dazu? Danke Dir im Voraus!
Grüße
Siggi
Hallo Siggi,
das kommt auf den Webserver an. Ich habe schon .htaccess-Dateien mit mehr als 300 Weiterleitungen gesehen und die Webseite hat trotzdem sehr schnell geladen.
Ist der Webserver aber langsam oder eventuell falsch konfiguriert, kann eine große .htaccess-Datei die Ladezeit der gesamten Webseite negativ beeinflussen.
Wenn du für dein neues Projekt ein CMS verwendest, würde ich nach einer Erweiterung zum Verwalten der Weiterleitungen suchen. Für WordPress gibt es dafür z.B. das Plugin Redirection.
Hallo Lukas,
ich habe versucht es selbst hinzubekommen aber ich stehe echt auf dem Schlauch.
Ich versuche eine Unterseite der domain auf eine andere Unterseite der selben Domain pauschal umzuleiten, jedoch ohne den genauen link beizubehalten. Zum veranschaulichen was ich meine:
Nehmen wir an es gibt eine Seite:
https://www.domain.com/wpshop/hvheu/fjfiei/hfh
https://www.domain.com/wpshop/qwgihreqheu/fjfietbpifh
https://www.domain.com/wpshop/hbihpqei/fjfiei/urezh
…
und so weiter..
nun würde ich gerne mit der .htaccess realisieren, dass ausnahmlos alle aufrufe die mit https://www.domain.com/wpshop/ beginnen, inklusive https://www.domain.com/wpshop/ selbst auf https://www.domain.com/neueseite/ umgeleitet werden.
Das heißt, https://www.domain.com/wpshop/hvheu/fjfiei/hfh soll NICHT zu https://www.domain.com/neueseite/hvheu/fjfiei/hfh werden, sondern nur https://www.domain.com/neueseite/.
Vielen Dank im Vorraus!
Hallo Tim,
dazu musst du nur die beiden Zeilen in deiner .htaccess-Datei einfügen:
Beste Grüße
Lukas
Moin Lukas,
vielen Dank für einen endlich mal kurzen und präzisen Artikel. Ich hab von sowas grundsätzlich keinen Schimmer und wollte nur mal nachfragen, ob ich das jetzt richtig verstanden habe.
Wir haben unsere Shop-URL-Parameter umgestellt und jetzt für jedes Produkte duplicate content.
Also z.B. http://www.meineseite.de/detail/100/produktA – wurde zu http://www.meineseite.de/detail/100/produktA_kaufen
Kann das jetzt einfach per 301 gesammelt weitergeleitet werden oder muss das einzeln auf jeder Unterseite passieren? Also eine Liste mit Alt zu Neu ist schnell erstellt, die Frage ist nur ob das gesammelt irgendwo umgesetzt werden kann?
Hallo,
soweit ich weiß musst du in diesem Fall jede Weiterleitung einzeln vornehmen. Für die meisten Shopsysteme gibt es aber eine Funktion bzw. eine Erweiterung um die Weiterleitungen zu verwalten.
Hallo,
super informativer Artikel, danke.
Ich stehe auch vor dem Problem eine alte Webseite auf eine neue zu wechseln, aber dabei hast du mir oben schon geholfen.
Jetzt ist es ja aus SEO Gesichtspunkten sinnvoll eine Shop Seite die ich der Webseite hinzufügen will, aber komplett andere Adresse hat (123123.hoster.de), auf http://www.neuedomain.de/shop zu setzen.
Wie und wo muss ich eine solche Weiterleitung setzen? Ein reiner Link leitet ja nur auf die „hässliche“ URL weiter.
Ich würde es gerne als „Sub-Domain“ maskierend einbinden um im Bereich SEO zu profitieren.
ps. vlt stehe ich auch einfach auf dem Schlauch aktuell 🙂
Hallo Carsten,
leider verstehe ich dein Vorhaben nicht so ganz. Falls dein Shop im Moment über eine anderen Domain verfügbar ist, würde ich den Shop in das Unterverzeichnis der neuen Domain (z.B. http://www.neuedomain.de/shop/) übersiedeln und von der alten Domain einen Redirect auf die neue Domain setzen.
Dazu musst du nach der Übersiedlung des Shops folgende Zeilen in die htaccess-Datei des alten Shops einfügen:
LG Lukas
Was mache ich am besten, wenn mein ganzes Projekt quasi neue Urls für die Unterseiten bekommen hat. Die Domain ist gleich geblieben aber eigentlich alle Unterseiten haben jetzt neue Urls.
Muss ich wirklich für jede einzelne Unterseite eine…..???
RewriteEngine on
Redirect 301 /alte-seite.html http://domain.tld/neue-seite.html
Hallo Gerd,
in diesem Fall musst du leider wirklich jede Unterseite einzeln weiterleiten.
LG Lukas
Hallo,
super beitrag.. ich suche nach folgender Lösung:
eine Domain (www.exampleA.com) inkl. aller Unterseiten (www.exampleA.com/1.html, http://www.exampleA.com/2.html, http://www.exampleA.com/3.html, bis http://www.exampleA.com/XYZ.html)
auf die Startseite einer neuen Domain (www.exampleB.com) weiterzuleiten?
sprich – ich möchte das die Domain und alle alten Links auf eine neue Startseite umgeleitet werden
Kannst du mir hier helfen?
Hallo Christian,
dazu musst du folgende Zeilen in die .htaccess-Datei auf http://www.exampleA.com einfügen:
perfekt!! Vielen Dank!
Hallo Lukas,
super Seite und ganz toller Beitrag. Vieles habe ich schon verstanden. Ich habe nun meine erste Webseite und leider durch unrichtiges Verlinken einige URLS im webmaster tools als nicht gefunden gelistet:
/2015/beitrag/katzenfutter-kaufen.html RICHTIG: /katzenfutter-kaufen.html
oder
/katzenpflege.htm RICHTIG: /katzenpflege.html („l“ vergessen)
Das ganze spielt sich aber auf der selben Domain ab. Habe ich es richtig verstanden, dass man die 301 Redirec Weiterlietung per .htaccess-Datei auch fuer ein und die selbe Webseite nutzen kann oder nur wenn man die Domain wechselt? Lieben Dank Petra
Hallo Petra,
es freut mich, dass dir der Artikel geholfen hat. Du kannst die Weiterleitung auch innerhalb deiner Website erstellen. In deinem Fall sieht das dann so aus:
Falls du
RewriteEngine on
bereits in deiner .htaccess-Datei aufrufst, brauchst du das kein zweites Mal einfügen.LG Lukas
Lieben Dank Lukas!
Petra
Hallo Lukas,
alles ganz prima erklärt. Ich habe aber folgendes Problem:
alt: /artikel_3456.html
neu: /neuerartikel_3456/
Das sind natürlich eine Menge Seiten und idie 3456 ist natürlich stellvertretend die id.
Hast Du eine Lösung?
Hallo René,
das sollte mit RegEx möglich sein. Ich bin auf diesem Gebiet aber leider nicht sehr versiert. Falls mir dennoch eine Lösung einfällt, gebe ich dir Bescheid.
LG Lukas
Hallo Lukas,
Danke Dir. Ich bin da auch nicht wirklich wahnsinnig fit, habe aber eine Lösung gefunden…Trial and Error 🙂
Falls es jemand interessiert:
RewriteRule beitrag_([0-9]{1,6}).html$ /beitrag_$1/ [R=301,L]
macht aus:
beitrag_123.html
/beitrag_123/
Hallo René,
Danke für deinen Beitrag! Ich werde den Artikel demnächst aktualisieren und dabei deine Lösung einfügen.
LG Lukas
Hallo zusammen!
Ich möchte alle Seiten die die Endung .php besitzen nach „ohne“ umleiten, somit die Endung .php entfernen.
Also http://www.dosenkohl.de/irgendwas.php
nach http://www.dosenkohl.de/irgendwas
Ich würde diesen Befehl gerne einbinden, weiss aber nicht wie ich diesen in der aktuellen htacces integrieren soll:
RewriteRule ^(.+)\.php $1/ [R=301,L]
Die aktuell htaccess sieht so aus:
# — concrete5 urls start —
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
# — concrete5 urls end —
# — gzip compression —
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
ExpiresActive On
ExpiresDefault „access plus 30 days“
FileETag none
# — umleitungen diverse 301 umleitungen —
Redirect 301 /verzeichnis/name/irgendwas/index.php http://www.dosenkohl.de/verzeichnis/name/irgendwas
Hallo Bully,
mit folgenden Zeilen kannst du die Endung .php entfernen:
Wenn du das nach
# — concrete5 urls end —
sollte es eigentlich funktionieren. Falls nicht, würde ich es vor# — concrete5 urls start —
einfügen.Mit diesen Zeilen kannst du zudem die Startseite http://www.dosenkohl.de/index.html bzw. http://www.dosenkohl.de/index.php auf http://www.dosenkohl.de/ weiterleiten:
LG Lukas
Hallo Lukas,
DANKE für die schnelle Info! Jetzt habe ich noch etwas vergessen bzw. ggfs. eine Verständnisfrage.
Im bisherigen Projekt (bzw. im Google index) befinden sich noch zahlreiche Seiten die die Endung index.php besitzen. Diese möchte ich auf non index.php umleiten. Geht das mit einem Befehl oder muss jede einzelne Seite umgeleitet werden?
Beispiel:
http://www.dosenkohl.de/index.php nach http://www.dosenkohl.de
http://www.dosenkohl.de/irgendwas/index.php nach http://www.dosenkohl.de/irgendwas/
Wie würde das aussehen?
Hallo Bully,
mit RegEx ist das ziemlich sicher möglich. Ich kann dir dazu aber noch keine Anleitung geben, da ich mich damit noch nicht sonderlich gut auskenne.
LG Lukas
Ergänzung:
Leider funktioniert die Anweisung die .php zu entfernen bzw. umzuleiten nicht.
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(html?|php)\ HTTP/ [NC]
RewriteRule ^index\.(html?|php)$ http://www.dosenkohl.de/ [R=301,L]
Hallo Bully,
das ist der Code um http://www.dosenkohl.de/index.html und http://www.dosenkohl.de/index.php auf http://www.dosenkohl.de/ umzuleiten. Zum Entfernen der Dateiendung .php musst du diese Zeilen in die htaccess-Datei einfügen:
Den Befehl
RewriteEngine On
solltest du aber nur einmal in der htaccess-Datei aufrufen.LG Lukas
Hallo Lukas!
Toller Beitrag der seit zwei Jahren schon vielen Leuten geholfen hat.
Vielleicht kannst du mir auch helfen und die Frage beantworten ob man die verschiedenen Befehle auch kombinieren kann.
Dh. erst ein Teil der alten Seiten auf die neuen Seiten umleiten und dann den Rest der Seiten auf die Startseite der neuen Domain. Quasi so:
RewriteEngine on
Redirect 301 /alte-seite.html http://neue-domain.tld/neue-seite.html
Redirect 301 /alte-seite2.html http://neue-domain.tld/neue-seite2.html
RewriteRule (.*) http://neue-domain.tld/$1 [R=301,L]
Vielen Dank und liebe Grüße
Karsten
Hallo Karsten!
Ja, die .htaccess-Datei wird immer der Reihe nach abgearbeitet weshalb du vorher einzelne Unterseiten weiterleiten kannst, bevor du den Rest weiterleitest.
LG Lukas
Danke genau das habe ich gesucht
Hallo,
ich stelle demnächst meine Website von http:// auf https:// um. Dabei würde mich interessieren wie ich bei der Weiterleitung von Unterseiten in der .htacces Datei am besten vorgehen soll um Rankingverluste zu vermeiden?
Macht es SEO-technisch einen Sinn alle Unterseiten der alten Domain manuell auf das jeweilige Pendant auf der neuen https:// Version weiterzuleiten (also z.B.: Redirect 301 http://www.domain.tld/alte-seite.html https://www.domain.tld/neue-seite.html)
oder reicht es aus wenn man alle Seiten folgendermaßen über deine Zeilen weiter oben weiterleitet?
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
Macht die manuelle Weiterleitung einzelner Unterseiten auf die neue Unterseite einen Sinn um Rankingverluste in den SERPs zu minimieren oder reicht eine allgemeine Weiterleitung?
Vielen Dank für die Info!
Hallo Thomas,
wenn die URLs ansonsten gleich bleiben, ist es nicht notwendig sämtliche Unterseiten einzeln weiterzuleiten. Wichtig ist aber, dass alle Versionen der Website (mit und ohne www sowie mit http als auch mit https) auf die von dir bevorzugte Version weiterleiten um Duplicate Content zu vermeiden.
LG Lukas
Tolle Erklärungen und Beispiele und das Lukas seit 2 Jahren immer wieder Fragen beantwortet finde ich Klasse +1.
Vielleicht kannst du Lukas oder sonst einer von euch helfen.
die Domain wurde auf https:// umgestellt.
So weit alles gut, das Problem ist, es gibt einen alten Backlink der nicht mehr geändert werden kann.
Dieser zeigt auf
http://www.example.com/wichtige-news
wenn dieser link aufgerufen wird landen sofort alle auf der Hauptseite http://www.example.com, was in diesem Fall nicht beabsichtigt ist, viel mehr sollten die auf https://www.example.com/wichtige-news landen.
Die .htaccsess sieht wie folgt aus.
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
gibt es den die Möglichkeit das incoming URI nicht auf die Startseite sondern auf den selben Link nur in der https:// weitergeleitet werden.
Besten Dank für die evtl. Hilfe.
Hallo Thomas,
ich kann keinen Fehler in deiner .htaccess-Datei erkennen. Rufst du in deiner .htaccess RewriteEngine On vor den beiden Zeilen auf?
Hast du es schon versucht die Unterseite einzeln weiterzuleiten?
Das kannst du durch diese Zeilen testen:
LG Lukas
Hallo!
Danke für die Erklärung. Ich hätte eine Frage dazu:
Ich möchte von meiner alten Domain auf eine neue Domain umsteigen.
Bsp.:
alteseite.at (alte Domain) -> hier richte ich eine Weiterleitung auf die neue Domain direkt beim Serveranbieter ein
neueseite.at (neue Domain)
Kann ich auch einzelne Seiten der alten Domain auf die neue umleiten? Bsp.:
alteseite.at/kategorie -> redirect auf
neueseite.at/shop
Ist das möglich und wenn ja wie?
LG und Danke
Claudia
Hallo Claudia,
wenn bei sämtlichen Unterseiten die URL gleich geblieben ist, kannst du diese durch die folgenden Zeilen weiterleiten:
Einzelne Seiten kannst wie folgt weiterleiten:
Falls ein Großteil der Unterseiten die selbe URL haben und nur wenige sich geändert haben, kannst du die Ausnahmen zuerst in die .htaccess einfügen und dann die allgemeine Weiterleitung der restlichen Unterseiten festlegen.
LG Lukas
Vielen Dank für die super Infos. Angegeben ist:
Leider funktioniert folgendes Redirect bei mir nicht:
Es kommt bei direkter Eingabe der Adresse http://name.org/index.htm in den Browser (Chrome) die Meldung, es gäbe zu viele Weiterleitungen.
Haben Sie einen Rat, was ich tun sollte?
Danke! Anna
Hallo Anna,
die von dir verwendete Weiterleitung
redirect 301 /index.htm http://www.name.org/
sorgt für eine Endlosschleife weshalb der Browser diese Meldung ausgibt.Kopiere die folgenden Zeilen in die .htaccess um /index.htm, /index.html und /index.php auf http://www.name.org/ weiterzuleiten:
LG Lukas
1000000000000000 Dank!
Das Lob steht auf G+: https://plus.google.com/u/0/+AnnaBlume1/posts/hdLuF1MVMKK
Vielen Dank!
LG Lukas
Hallo Lukas,
eine Frage zu folgender Situation: es gibt zwei Domains, die beide auf den selben Ordner auf dem Server zugreifen. Eine der beiden Domains wurde beim Anbieter gelöscht. Blöderweise die Domain, die bei Google indexiert ist. Jetzt wollte ich eine 301 Weiterleitung in der .htaccess-Datei einrichten, damit bei Aufruf der indexierten, gelöschten Domain auf die andere, weiterhin bestehende Domain umgeleitet wird. Dafür habe ich folgendes in die .htaccess eingetragen:
RewriteEngine On
RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ http://weiterhin-bestehende-domain.de/$1 [L,R=301]
Jetzt bekomme ich die Browser-Meldung, dass zuviele Umleitungen vorhanden sind. Hast Du einen Tipp für mich? Danke schonmal!
Hallo Dani,
für die Weiterleitung musst du die gelöschte Domain erneut auf deinem Server anlegen. Verwende dazu aber einen anderen Ordner und füge dort folgendes in die htaccess-Datei ein:
LG Lukas
Danke! Hab ich mir schon fast gedacht. Domain ist wieder aktiviert, anderen Ordner zugeordnet, htaccess Datei rein – funktioniert jetzt, danke!
Hallo Lukas, vielen Dank für den tollen Beitrag!
Eine Frage hätte ich dennoch: Ich möchte, dass einige alte unterseiten auf die neuen unterseiten weitergleitet werden UND dass alle restlichen Unterseiten auf die Startseite weitergeleitet werden.
Wie müsste die htaccess dafür aussehen? :/ Ich wäre dir sehr dankbar!
LG Abud
Hallo Abud,
da die .htaccess der Reihe nach abgearbeitet wird, solltest du vorher die einzelnen Unterseiten weiterleiten und dann erst die restlichen.
Das könnte z.B. so aussehen:
LG Lukas
Herzlichen Dank Lukas!!
Hallo Lukas,
unsere Shop-Agentur meinte, dass PHP-Dateien performanter sind als .htaccess Dateien und die Ladezeit besser ist.
In deinem Artikel steht es umgekehrt 😀 Kannst du mir das erklären?
Liebe Grüße
Dani
Hallo Daniel,
die .htaccess-Datei ist die Datei, die Server-Konfigurationen für den Apache Webserver beinhaltet. Sie wird daher direkt vom Apache Server ausgeführt, was die Weiterleitungen sehr schnell macht. Wenn Redirects via PHP eingerichtet werden, muss zuerst der PHP-Interpreter am Server ausgeführt werden, was die Ladezeit ein bisschen verlangsamt.
Es kommt aber darauf an, wie die PHP-Weiterleitungen umgesetzt werden. Wird für die Weiterleitungen auf eine Datenbank zugegriffen, kann das die Ladezeit erhöhen. Wird hingegen nur ein einfacher Redirect in einer PHP-Datei gesetzt (ohne Aufruf einer Datenbank), wird es wahrscheinlich kaum einen Unterschied zwischen .htaccess und PHP geben.
Da es für die meisten Shop-Systeme Erweiterungen bzw. Funktionen für Weiterleitungen gibt, kann man diese dort meist sehr komfortabel und übersichtlich verwalten. Das betrifft vor allem Websites mit Unmengen an Redirects.
Falls du die Möglichkeit hast, würde ich beide Varianten testen.
LG Lukas
Hallo Lukas,
ich habe eine Webseite mit einigen Unterseiten und mehrerer Domains die ich dann auf diese Seite gelenkt habe. Bei Google sind jetzt dann ein paar Unterseiten mit Domain 1, ein paar Seiten mit Domain 2 usw. und ein paar Seiten auch Doppelt indexiert worden. Habe mich leider aus Unwissenheit zu spät mit dem Thema Doppelindexierung befasst.
Jetzt habe ich per htaccess alle Seiten auf eine einzige neue Hauptdomain mit https… umgeleitet.
Mir ist leider noch nicht ganz klar was jetzt da bei der Google Indexierung passiert?
Werden die Seiten wenn ich Sie einfach so lasse und nicht lösche, dann nach und nach durch die neuen https Seiten „ausgetauscht“ und an der fast gleichen Stelle von Google mit dem neuen Namen indexiert und der alte Adresseneintrag ist dann entgültig verschwunden?
Soll man aus Geschwindkeitsgründen, nach der erfolgten neuen Indexierung, die htacess Umleitungseintrage löschen oder kann es dann passieren das die alten Seiten dann bei irgendeiner erneuten Google Indexierung wieder mal auftauchen und das ganze Spiel wieder von vorne beginnt?
Was passiert wenn ich alle alten und bereits idexierten Domainadressen die ich per htaccess auf eine neue Hauptdomain umlenke, auch gleichzeitig aus dem Google Index löschen lasse? Verliere ich dann mein Ranking oder geht Google beim Erst-Crawling (der alten noch existierenden Einträge bzw. bereits gelöschten Seiten) dann eh auf meine durch htaccess umgelenkte neue Domainseite und es hat keinen wirklich nachteiligen Einfluss auf das Ranking?
Danke für Deine Anwort,
lg Georg
Hallo Georg,
die Websites, die auf die neue Website weiterleiten, werden nach und nach in den Suchergebnissen durch die neue Website ersetzt.
Wenn du diese durch einen 301 / permanent Redirect weiterleitest, sollte die neue Website ca. dort in den Suchergebnissen erscheinen wo eine der alten Websites auch früher positioniert war. Es dauert aber in der Regel ein paar Wochen bis Monate bis die Redirects erkannt wurden. Durch den temporären Duplicate Content kann es außerdem ein bisschen länger als normalerweise dauern bis die alten Rankings wieder vorhanden sind.
Die Redirects würde ich in der .htaccess lassen, da die alten Websites nur noch einen Sinn haben: die Weiterleitung auf die neue Website. Die Weiterleitung via .htaccess-Datei ist zudem sehr schnell und beeinflusst die Ladezeit der neuen Website nicht.
Ich würde die alten Domains nicht aus dem Google-Index löschen lassen, da diese das Ranking auf die neue Website vererben sollen.
LG Lukas
Vielen Dank für den Beitrag, jedoch habe ich immer noch meine Probleme damit.
Ich möchte meine URL von Groß- auf Kleinschreibung umstellen, das habe ich so gemacht:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
RewriteRule ^_(.*).html$ /index.php?site=content&freicontent=$1
Redirect 301 /_Schwarzwaelder_Kirschtorte.html https://www.schwarzwaldportal.com/_schwarzwaelder-kirschtorte.html
Ich werde dann aber zu https://www.schwarzwaldportal.com/_schwarzwaelder-kirschtorte.html?site=content&freicontent=Schwarzwaelder_Kirschtorte geleiet und nicht zu https://www.schwarzwaldportal.com/_schwarzwaelder-kirschtorte.html
Wie kann ich verhindern, dass mir die Varabeln angehängt werden?
Hallo Stefan,
das liegt an dieser Zeile:
Wenn du diese entfernst sollte es funktionieren.
Alternativ kannst du die Reihenfolge ändern, damit der Redirect zuerst durchgeführt wird. Das würde dann so aussehen:
LG Lukas
Hi Lukas,
vielen Dank für die Hilfestellung leider funktioniert es nicht.
Ich habe die Seite auch schon mittels PHP Header umgeleitet, das geht aber Google hat immer noch die alte Seite (/_Schwarzwaelder_Kirschtorte.html) im Index.
LG Stefan
Hab einen Weg gefunden.
Ich stelle die Reihenfolge so um:
RewriteRule ^_(.*).html$ /index.php?site=content&freicontent=$1
#Weiterleitungen
Redirect 301 /index.php?site=content&freicontent=Schwarzwaelder_Kirschtorte https://www.schwarzwaldportal.com/_schwarzwaelder-kirschtorte.html
Danke für deine Hilfe
Moin Lukas,
ich bin richtig begeistert über die vielen hilfreichen Tipps hier, habe mir auch alles ausgedruckt, um mein Problem lösen zu können, aber ich komme noch nicht sehr viel weiter.
Ich suche aber seit drei Tagen Lektüre zu dieser Problematik.
Es muss doch ein Buch oder so geben für htaccess, Redirekt bzw. Weiterleitung, hast Du da einen Rat für mich?
Ich habe Serverplatz auf 1und1, meine Website in der Root und mit Ordnern, zu denen Domains weitergeleitet werden auf ihre Seiten.
Nun möchte ich gleichzeitig auf SSL umsteigen, www auf nicht www und zwei com-Domains auf meine Website in der Root umleiten (letzteres eventuell mittels Ordner und htaccess).
Aber welche Reihenfolge muss ich einhalten, und was mache ich mit Websites, die in einem Unterordner liegen??
Gibt es für sowas keine Lektüre???
Danke und Liebe Grüße von der Insel Fehmarn
Rolf
Hallo Rolf,
ich kann dir leider keine Lektüre aus diesem Bereich empfehlen, da mir hier nichts bekannt ist. Ich werde aber trotzdem versuchen so gut es geht dir zu helfen.
Für den Umstieg auf SSL bzw. HTTPS und die Weiterleitung der www-Subdomain auf deine Root-Domain benötigst du folgende zwei Redirects:
Du solltest diese Zeilen übrigens nur in der .htaccess-Datei im Root-Verzeichnis der jeweiligen Website einfügen.
Für die Weiterleitung der beiden .com-Domains musst du folgende Zeilen in die .htaccess-Datei im Root-Verzeichnis der jeweiligen .com-Domain einfügen:
Hoffentlich konnte ich dir damit helfen.
LG Lukas
Danke Lukas,
das hat mir sehr geholfen! Jetzt habe ich erst mal viel Arbeit,
muss ja überall die DSGVO einarbeiten.
Danach versuche ich dann mal rauszufinden, wie ich die Joomla
und eine WordPress-Seite dazu bewegen kann, auch HTTPS zu
Bekommen.
Noch einmal: Herzlichen Dank
P.S. Ich versuche immer, solche Probleme durch Lesen zu lösen, deshalb die Frage nach Lektüre, weil ich bisher nichts dazu habe finden können.
Gruß von der Ostsee-Insel und -Stadt Fehmarn
Rolf
Halo Rolf,
kein Problem! Falls du Hilfe benötigst bei der Umstellung von HTTP auf HTTPS bei Joomla sowie WordPress kannst du mich gerne kontaktieren.
Falls es sich zeitlich ausgeht, werde ich noch einen Blog-Beitrag zur DSGVO schreiben. Ich weiß aber leider nicht ob ich das bis 25.5. schaffe.
LG Lukas
Hallo Lukas,
vielen Dank, alles sehr informativ und schön zusammengefasst. Leider kann ich nirgends eine Lösung für mein Problem finden. Vielleicht weißt Du da weiter.
domain1, domain2 und domain3 zeigen auf den gleichen Ordner. Jetzt soll durch die Umstellung auf https die Domains eben auf https://domain1, https://domain2, https://domain3 weitergeleitet werden. Ist das möglich? Ich weiß das Multidomains nicht gut sind, aber es wird halt so gewünscht.
Vielen Dank eventuell für eine Lösung, ansonsten auch fürs Lesen.
Hallo Barbara,
füge die folgenden Zeilen in die .htaccess-Datei des Root-Verzeichnis ein:
Sollte das nicht funktionieren, gib mir bitte kurz Bescheid.
LG Lukas
Hallo Lukas
Ich habe eine Frage bezüglich mehreren Weiterleitungen:
Wenn ich die Hauptdomain (ohne Index) auf die eine Seite weiterleiten möchte, die Unterdomains jedoch auf eine andere – muss ich dann den Code so eingeben?
Redirect 301 / https://www.NeueHauptdomain.ch/
Redirect 301 /Unterseite1 https://www.AndereHauptdomain.ch/Unterseite1
Redirect 301 /Unterseite2 https://www.AndereHauptdomain.ch/AndereUnterseite
Vielen Dank schon im Voraus!
Hallo Janina,
wenn du die Hauptdomain bzw. Startseite weiterleiten willst, würde ich das wie folgt.
LG Lukas
Hallo,
ich bin allen Kommentaren durch gegangen und konnte leider keine Lösung für mein Problem finden. Meine Webseite besitzt zwei Domains (.de und .at) und ich möchte eine https://www. Weiterleitung ermöglichen. Kannst du mir sagen wie ich hier vorgehen muss?
von non-www zu www
domain.de -> http://www.domain.de
domain.at -> http://www.domain.at
von http zu https
http://www.domain.de -> https://www.domain.de
http://www.domain.at -> https://www.domain.at
von non www http zu www https
http://domain.de -> https://www.domain.de
http://domain.at -> https://www.domain.de
Die Suchfunktion habe ich ebenfalls bereits genutzt und konnte zu keinem Ergebnis kommen.
Vielen Dank im Voraus für deine Hilfe!
Hallo,
da ich eigentlich immer auf die nicht-www-Version der URL weiterleite, bin ich mir nicht ganz sicher, aber das sollte funktionieren:
Sollte das nicht funktionieren, gib mir bitte kurz Bescheid.
LG Lukas
Vielen Dank für die Antwort!
Leider hat es nicht geklappt. Wenn ich http://domain.de eingebe wird zwar zu https:// weitergeleitet aber ohne www.
Hallo,
alternativ kannst du noch das versuchen:
LG Lukas
Klasse Artikel, allerdings bin ich gerade auf der Suche wie ich eine alte Subdomain einer Expired auf meine Seite umleiten kann, weiß jemand wie das geht?
Hallo Gerd,
tut mir leid, dass ich jetzt erst antworte. Um eine Subdomain weiterzuleiten, würde ich für diese einfach einen Webspace anlegen und anschließend via .htaccess die Redirects setzen (falls es ein Apache Server ist).
LG Lukas
Hi Lukas,
klasse Tipps (Y). Ich versuche einen Redirect von einer Joomla auf eine WordPress Installation zu machen. Allerdings wird mein Reirect ignoriert. :/
Hast du einen Tipp, wie ich den korrekt anlege um eine SEO freundliche URL und eine Weiterleitung vom alten zum neuen Artikel zu bekommen?
Im WordPress steht in dem .htaccess Teil folgendes bereits drin:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Weiterleitungen
Redirect 301 /index.php?option=com_content&view=article&id=47&Itemid=75 https://www.example.org/unternehmen/
.htaccess an sich funzt, der Provider ist IONOS (1und1)
Besten Dank schon mal
Steffen
Hallo Steffen,
ich würde den Redirect an erster Stelle schreiben. Also so:
Solltest du aber mehrere Weiterleitungen benötigen, würde ich das WordPress-Plugin Redirection verwenden. Damit kannst du diese sehr gut verwalten.
LG Lukas
Danke dir für den Tipp, an n Plugin für WP hatte ich noch nicht gedacht. Super (Y)
Danke dir
Steffen
Hallo,
ist es möglich einen Redirect wie folgt zu erstellen?
/überseite/ -> wird weitergeleitet auf -> /überseite/unterseite/
Wir haben eine Seite die wir eigentlich nicht mehr benötigen wollen jedoch nicht den kompletten Linkpfad ändern. Somit wollten wir nur die Überseite nicht mehr aufrufbar machen und direkt auf die Unterseite verlinken.
Wir haben es aktuell in der htaccess Datei hinterlegt jedoch passiert dann dies:
/überseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/unterseite/….