Richtiger Gebrauch von mod_rewrite (www erzwingen)

Richtiger Gebrauch von mod_rewrite (www erzwingen)

Überstzung des original Artikels auf moedesigns.com:

Verwenden Sie mod_rewrite um immer den vollen Domainnamen (www.ihrname.ch) anzeigen zu lassen. Mit all den vielen SEO-Tipps, vergisst man schnell die einfachen aber effizienten Techniken. Einer dieser Techniken ist, dass man mit Hilfe von mod_rewrite immer den vollen Domainnamen (inkl. “www” vor dem Domainnamen) erzwingt. Dies stellt sicher, dass Ihr Domainnamen immer in voller Länge angezeigt wird. Warum das? Diese Methode stellt sicher, dass die von den Suchmaschinen und Besuchern angeklickten Links durchgehend einheitlich sind.

Wen Sie zum Beispiel die Adresse “joomlanews.ch” in Ihr Webbrowser eingeben, und so die Seite aufrufen wollen, werden Sie vom Server automatisch auf die Adresse “www.joomlanews.ch” weiter geleitet. So wird nicht nur sichergestellt dass das “www” existiert, sondern Sie können so auch alle Adressen kontrollieren, die nicht mit “www” beginnen. So wird nicht nur “joomlanews.ch” umgeleitet sondern auch alle anderen Adressen die auf “irgendwas.joomlanews.ch” oder so lauten. Das alles passiert in weniger als einer Sekunde. So dass der Besucher es gar nicht merkt, ausser dass die URL-Adresse eine andere ist.

Bitte beachten Sie, dass diese Anleitung nur im Zusammenhang mit Apache Webservern funktioniert. Auf IIS basierten Webservern wird diese Anleitung nicht funktionieren.

Im Stammverzeichnis Ihres Webseitenordners (root) sollten Sie eine Datei haben (oder Sie können eine mit dem Texteditor anlegen) die .htaccess heisst (Bitte beachten Sie den Punkt . vor dem Dateinamen). Ergänzen Sie die unten stehenden Zeilen in Ihrer .htacess Datei. Vergessen Sie dabei nicht die Benennung “joomlanews.ch” durch Ihren eigenen Webseitennamen zu ersetzen.

Dies ist der Code den ich verwende, um meinem Domainnamen das “www” vorne dran zu erzwingen:

<IfModule mod_rewrite.c>
RewriteEngine on
Rewritecond %{HTTP_HOST} !^www\.joomlanews\.ch
RewriteRule (.*) http://www.joomlanews.ch/$1 [R=301,L]
</IfModule>

Erklärung zum Code:

Linie 1: <IfModule mod_rewrite.c>
Mit diesem Befehl wird einfach sichergestellt, dass das Modul: mod_rewrite auf dem Apache Servver geladen wird.

Linie 2: RewriteEngine On
Dieser Befehl sagt dem Apache, dass er die Rewrite Funktion starten soll.

Linie 3: Rewritecond %{HTTP_HOST} !^www\.joomlanews\.ch
Diese Linie setzt ein “Rewrite Befehl”. Dies sagt dem mod_rewrite, was es zu sehen gibt. In unserem Fall suchen wir in der Variable %{HTTP_HOST} und wir suchen nach: !^www\.joomlanews\.ch
Das “!” bedeutet “ungleich” und das “^” meint “beginnend mit”. Die \-Zeichen vor dem “.” werden als Escape-Zeichen gelesen. Alles was sie bezwecken ist, dass alle Zeichen nach dem “www” und vor dem “ch” keinen Befehlszeichen ist wie das “!” oder das “^” Zeichen. Mit diesen HTTP_HOST Variablen “ungleich” und “beginnend mit” werden alle ungleichen URLs und solch beginnende URLs auf www.joomlanews.ch zusammenfasst. So lasst uns nun die nächste Zeile ansehen.

Linie 4: RewriteRule (.*) http://www.moedesigns.com/$1 [R=301,L]
Dies ist der letzte Schritt. Erstellen einer “Rewrite Regel”. Im vorherigen Schritt haben wir gesagt, dass jede beliebige Zeichenfolge zusammengefasst wird, die nicht “www.joomlanews.ch” entspricht. Nun sagen wir mod_rewrite, was zu tun ist, wenn es gefunden hat, wonach gesucht wurde. Das tun wir mit einer “Rewrite Regel”. Unsere Regel leitet einfach auf den richtigen Hostnamen (http://www.joomlanews.ch) weiter und behält dabei die Argumente ($1) die hinter dem “/” sind. z.B. http://joomlanews.ch/test.php -> Weiterleitung auf: http://www.joomlanews.ch/test.php. So wird das Argument “test.php” mitgenommen. Das ist eigentlich schon alles was Sie brauchen. Aber ich bin mir sicher, dass Sie hinten noch [R=301] gesehen haben. Dies sagt dem Browser oder der Suchmaschine, dass es sich hier um eine permanente Weiterleitung 301 handelt. Wenn nun so ein Spider/Crawler auf eine URL trifft, weiss er, dass der Inhalt umgeleitet wurde und erstellt automatisch ein neuen Index mit der neuen URL-Adresse. Er sollte dann auch die bereits gespeicherten URL-Adressen automatisch aktualisieren.

Linie 5: </IfModule>
Dieser Befehl schliesst einfach den Block: mod_rewrite, solange der gelaufen ist, ab.

Überprüfen Sie Ihre Apache Einstellungen, um sicher zu sein dass mod_rewrite aktiviert ist. Falls Sie nicht sicher sind, ob sie Ihr mod_rewrite aktiv haben, kontrollieren Sie die Datei im Apache Ordner: httpd.conf, ob die zwei Zeilen im Code enthalten sind:

—-
LoadModule rewrite_module libexec/apache/mod_rewrite.so
AddModule mod_rewrite.c
—-

Wenn diese beiden Zeilen in Ihrer Datei vorhanden sind, können Sie sicher sein, dass mod_rewrite korrekt funktioniert. Falls Sie daran interessiert sind noch andere Funktionen von mod_rewrite einzusetzen, können Sie hier (in Englisch) alle mod_rewrite Funktionen vom Apacheserver nachlesen.

Falls Sie der Meinung sind, dass ich in dieser Anleitung noch etwas vergessen habe, dann zögern Sie nicht Ihr Feedback in den Kommentaren zu hinterlassen.