BLOG

Umleitung mit der .htaccess

20.02.2010, Kommentare: 0, Themen: Webentwicklung, Internet

Sowohl für den Besucher einer Internetseite als auch für Suchmaschinen ist eine einheitliche Domain für einen Internetauftritt sehr wichtig. Ein Besucher, der unter verschiedenen Domains dieselben Inhalte vorfindet, kann verwirrt sein. Die Suchmaschin hingegen verbucht den Inhalt als Duplicate Content.

Daher ist es wichtig, sich für eine Domain zu entscheiden, dies gilt auch für die Darstellung mit www oder ohne. Da die meisten Besucher sich an das www gewöhnt haben, ist dies die häufigste Form.

Hier ein Beispiel für die Umleitung mit Hilfe der .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.digitale-dienstleistung\.de$ [OR]
RewriteCond %{HTTP_HOST} ^digitale-dienstleistung\.de$ [OR]
RewriteCond %{HTTP_HOST} ^markusseyer\.de$
RewriteRule (.*) http://www.markusseyer.de/$1 [R=301,L]
</IfModule>

Das Einklammern der eigentlichen Befehle mit <IfModule mod_rewrite.c> und </IfModule> verhindert auftretende Fehler falls das benötigte Modul mod_rewrite nicht geladen ist.

RewriteEngine On aktiviert die Funktionalität für Umleitungen.

RewriteCond legt eine Bedingung fest, bei der umgeleitet werden soll. %{HTTP_HOST} ist hier eine Variable, die vom Apache automatisch übergeben wird. Sie enthält die vom Benutzer eingegebene Domain (ohne Anhänge wie /blog/index.php). Entspricht diese Domain nun ^digitale-dienstleistung\.de$, ist die Bedingung erfüllt.
Das Zirkumflex ^ steht bei der Suche für den Beginn der Domain und das $ für das Ende der Domain. Da bei regulären Ausdrücken der . für ein beliebiges Zeichen steht, wird ihm diese Bedeutung hier mit dem Backslash \ genommen. Steht zwischen Anfang ^ und Ende $ der Domain also digitale-dienstleistung.de, ist eine Bedingung für eine Umleitung gegeben. Da wir weitere Bedingungen vorgeben wollen, definieren wir das mit [OR]. Nach der letzten Bedingung folgt dann die Umleitungsregel.

RewriteRule leitet schließlich um. RewriteRule bearbeitet dabei dei Zeichenkette, die nach der Domain eingegeben wird (z.B. /blog/index.php). Mit (.*) - also beliebig viele * beliebige Zeichen . - wird die gesamte Zeichenkette ohne Änderung in der Variablen $1 gespeichert. [R=301,L] bedeutet, dass die Umleitung dem Browser des Benutzers mit einem PERMANENT REDIRECT (R=301) gemeldet wird, und dass diese Regel die letzte (L) dieser Kette ist. Die Nutzung von R=301 setzt voraus, dass eine gültige URL übergeben wird. Dafür geben wir unsere Wunschdomain (http://www.markusseyer.de/) an und hängen alle anderen Zeichen an ($1).

Hier nochmal alles mit kurzer Erklärung:

# Nur wenn mod_rewrite geladen ist
<IfModule mod_rewrite.c>

# Umleitungsfunktionen aktivieren
RewriteEngine On

# Wenn %{HTTP_HOST} www.digitale-dienstleistung.de ist oder
RewriteCond %{HTTP_HOST} ^www\.digitale-dienstleistung\.de$ [OR]
# Wenn %{HTTP_HOST} digitale-dienstleistung.de ist oder
RewriteCond %{HTTP_HOST} ^digitale-dienstleistung\.de$ [OR]
# Wenn %{HTTP_HOST} markusseyer.de ist
RewriteCond %{HTTP_HOST} ^markusseyer\.de$
# Dann suche im Rest der URL nach (.*) und leite nach http://www.markusseyer.de/ um, hänge die gefundenen Zeichen an
RewriteRule (.*) http://www.markusseyer.de/$1 [R=301,L]

</IfModule>

Kommentar schreiben

 
 
 
Anzeigen
 
 
 
Anzeigen