Apache mod rewrite – 301 Weiterletungen – Umzug richtig gemacht

Wenn das Erfolgserlebnis groß ist, dann sollte man das gleich weiter geben.

Ich kämpfe ja noch immer mit Altlasten.
Meine Website habe ich vor einem Jahr etwa komplett auf WordPress umgestellt.
Angeboten hat sich das, da schon ewig lang ein Blog auf Basis von WordPress in einem Unterverzeichnis auf meinem Server lag.

Also wurde dieser als Hauptseite ausgebaut.

Doch was ist mit den alten url´s?

Die sollen google zuliebe mal dort bleiben wo sie sind, damit verlinkte Seiten nicht ins Nirvana gehen.

Nach und nach hab ich mit Hilfe von Google Webmastertools, robots.txt und zig Kleinigkeiten nachgeholfen und jetzt sind schön langsam die alten Seiten im Google index verschwunden – soweit ich das überhaupt beurteilen kann.
Ok somit steht einem Umzug meiner Seite vom Unterverzeichnis ins Hauptverzeichnis (root directory) nichts mehr im Wege.

Hauptverzeichnis ist besser als Unterverzeichnis – hab ich mir sagen lassen.

Gesagt getan, soweit hat alle ganz gut geklappt, aber was ist jetzt mit den Links, die irgendwo im Netz herum schwirren?

Die landen dann diesmal wieder im Nirvana. *oje*

Wie bringe ich den meinen Server dazu, alle bestehenden Links, von meinem Unterverzeichnis ins root directory und das permanent?

Dazu sollte es eine permanente 301 Weiterleitung eingerichtet werden.

Naja nichts leichter als das hab ich gedacht. Dazu eignet sich das Apache Modul mod rewrite, dass ja auf meinem Server läuft.

Also alles was nötig ist in die .htaccess datei schreiben und fertig.
Aber was?

Zuerst hab ich mir mal die Syntax vorgenommen, aber wer mich kennt, weiß, dass ich solche Zeichencodes eher hasse als liebe.
Gut, dann eben Google fragen.

Ich hab, denke ich ca. 758 Vorschläge probiert und keiner hat mich wirklich zum Ziel gebracht. Das eine mal passierte gar nix, das andere mal blieb alles in einer Schleife hängen.

Letztlich bin ich doch fündig geworden und das möchte ich nicht für mich behalten.

Deshalb nochmal kurz zusammengefasst:
Problem:

Alle Zugriffe umleiten von meinem Unterverzeichnis www.meinedomain.com/unterverzeichnis
auf das Root Verzeichnis umleiten www.meinedomain.com

Dabei sollte alles, was da hinten dran hängt auch noch mitgenommen werden.

Also www.meinedomain.com/unterverzeichnis/name-des-beitrages.html

auf www.meinedomain.com/name-des-beitrages.html ändern.

man erstelle eine .htaccess Datei und füge folgenden code ein:

RewriteEngine on
RewriteRule ^(.*) http://meinedomain.com/$1 [R=301]

Diese .htaccess Datei dann nicht ins Root Verzeichnis legen sondern in das ursprüngliche Unterverzeichnis und tata, Zauberei. Es funktioniert.
Ich hoffe, damit verhindert zu haben, dass einige so lange nach Lösungen suchen wie ich.

One thought on “Apache mod rewrite – 301 Weiterletungen – Umzug richtig gemacht

  1. Ja, das ist das altbekannte Leiden mit den Regular Expressions…
    Nächstes mal fragst einfach den Programmierer nebenan, ob er dir eine passende RegEx schreibt und sparst dir jede Menge Zeit! 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.