Webseite umziehen – Apache Rewrite Rules


Vor langer Zeit als ich das Blog hier aufgesetzt habe, habe ich es in ein Unterverzeichnis installiert (/drupal). Das hat dazu geführt, dass immer /drupal noch dazwischen war. Eigentlich war das so ganz ok, da ich immer mal noch etwas anderes mit der Domain gemacht habe. Da ich aber jetzt eigentlich nur noch mein Blog und noch 2 andere Domains als Multisite hier laufen lasse, habe ich mich entschieden, die Drupal Installation ins Root Verzeichnis zu verschieben.

Das hat eigentlich ohne Probleme funktioniert. War alles wunderbar, lediglich eingehende Links haben ein wenig Probleme. Ein paar .htaccess RewriteRules habe sehr gut geholfen. Zudem habe ich alle Blogeinträge via Bulkänderungen umgeändert -> leider habe ich einen kleinen Fehler gemacht und so gibt es immer noch den einen oder anderen Link, welcher ins Leer zeigt, aber sobald Google die neue XML Sitemap indiziert hat, sollte sich das auch ändern.

Also, falls der eine oder andere Link ins Leere weist … bitte geduldig sein 🙂

Beispiel RewriteRule

Rewrite Rules sind auch ganz einfach, wenn man es mal weiss. Hier ein Beispiel

RewriteRule ^drupal/category/(.)/(.) /category/$1/$2 [L,R=301]

Was macht diese Rule? Ganz einfach:

Alle URLs von drupal/category/(.)/(.) kommen werden umgeleitet. (.*) ist ein Platzhalter für ein Argument. Also konkret Beispiele:

drupal/category/tags/drupal oder auch drupal/category/tags/tutorial. Wenn so eine Adresse kommt, dann wird diese umgeleitet auf /category/$1/$2 wobei $1 und $2 Platzhalter für die jeweiligen Ausdrücke in runden Klammern sind. Somit würde

drupal/category/tags/drupal auf category/tags/drupal weitergeleitet werden.

Im .htaccess von Drupal gibt es bereits diverse solche RewriteRules