Redirect, Rewrite, Canonical Url

Ein Webauftritt soll grundsätzlich immer nur durch eine Url erreichbar sein. Führen mehrere Urls zu einem Inhalt sind Redirecting, Rewriting oder Canonical Urls notwendig um Duplicate Content zu vermeiden.

Duplicate Content

Kann ein Webauftritt über 2 Domains aufgerufen werden, kann Google das als Duplicate Content, also doppelt vorhanden Inhalt werten. Google wird das in den meisten Fällen schlecht bewerten und die seite niedriger Ranken.

Ist eine Seite beispielsweise über

  • www.greenitsolutions.at und
  • http://greenitsolutions.at

erreichbar, und es bleiben zwei verschiedene Urls in der Url Leiste stehen, also einmal mit www und einmal ohne www, dann ist das auch schon Duplicate Content und soll vermieden werden.

Das selbe Problem entsteht, wenn eine dynamische Website intern doppelt erreichbar ist.

Interner Duplicate Content kann entweder mit Redirecting, also einer Weiterleitung, oder mit Hilfe von Canonical Urls, also Kanonischen Urls gelöst werden.

Duplicate Content durch mehrere Domains wird am schnellsten durch ein Redirecting gelöst.

Redirect – die Weiterleitung

Besitzt ein Webauftritt, zwei oder mehrere Domains sind alle weiteren Domains auf eine Hauptdomain per Permanent Recirect (301) weiterzuleiten.

  • beispiel.at
    • „Toplevel Domain“
    • Weiterleitung auf www.beispiel.at per Permanent Redirect (301)
  • www.beispiel.at
    • Hauptseite
    • keine Weiterleitung
  • www.mein-beispiel.at
    • Permanent Redirect (301) auf www.beispiel.at (empfohlen)
    • Permanent Redirect (301) auf auf beispiel.at

Selbst greenitsolutions.at gilt als andere Domain als www.greenitsolutions.at und ist prinzipiell auf www.greenitsolutions.at weiterzuleiten. Google erkennt mittlerweile gleiche Inhalte und Websites ohne Weiterleitung werden nicht abgewertet.

Ob Sie alles richtig weitergeleitet haben, erkennen Sie daran, dass immer nur eine Domain in der Adressleiste stehen bleibt.
Bei der Anfrage von meldet der Webserver „301 Moved Permanently“ und weißt uns per „Location“ auf die richtige Adresse.

Permanent Redirect 301

Um eine Quelle dauerhaft weiterzuleiten wird die 301 Weiterleitung verwendet. Beim Apache Webserver ist ein Redirect auf mehrere Arten in mehreren Dateien möglich.

Die Weiterleitung kann innerhalb der vhosts (Virtuelle Hosts) oder der .htaccess Datatei erfolgen, wenn Sie keinen Zugriff auf die Apache Webserver Konfiguration haben.

  • Redirect permanent /old-page.php
  • RewriteRule old-page.php$ [L,R=301]

Temporary Redirect 302, 307

Ein temporärer, vorübergehender Redirect wird verwendet, wenn die angeforderte Ressourche vorübergehend unter einer anderen Adresse erreichbar ist. Die alte Adresse bleibt gültig.

Code 302 wird in HTTP/1.1 je nach Anwendungsfall durch die Statuscodes 303 bzw. 307 ersetzt.

Wikipedia meint:

Die 302 Weiterleitung ist aufgrund eines Suchmaschinen-Fehlers, dem URL-Hijacking, in Kritik geraten. Webmaster sollten von der Verwendung eines solchen Redirects absehen, wenn sie auf fremde Inhalte weiterleiten.

Der vhosts oder .htaccass Eintrag für eine Weiterleitung aller Inhalte auf einen anderen Server lautet:

  • RedirectTemp / „http://beispiel.at“

RealUrls mit mod_rewrite

Weiterleitungen oder Umleitungen können auch mit dem Apache Tool mod_rewrite realisiert werden.

Dazu muss in der Apache vhosts Datei die Rewrite Engine mit dem Befehlt „RewriteEngine on“ aktiviert werden.

Eine 302 Umleitung von allen Inhalten einer Website kann dabei so geschehen:

  • RewriteRule ^(.*)$ http://beispiel.at$1 [R=302,L]

Rewrite Ausnahme

Manchmal ist es nötig manche Verzeichnisse vom Rewriting auszunehmen. Soll beispielsweise ein Medienverzeichnis mit Bildern, Grafiken und Audiodateien nicht weitergeleitet werden, so muss eine Rewrite Ausnahme geschrieben werden.

Mit einer Rewrite Condition spezifizieren wir die Rewrite Konfiguration:

  • RewriteCond %{REQUEST_URI} !^/medienverzeichnis/

Rewrite Beispiel

Nun folgt ein praxisnahes Beispiel bei dem alle Inhalte bis auf das Medienverzeichnis weitergeleitet werden.

<IfModule mod_rewrite.c>

# mod_rewrite Optionen übernehmen
RewriteOptions inherit

# mod_rewrite einschalten
RewriteEngine on

# condition für Verzeichnis erstellen
RewriteCond %{REQUEST_URI} !^/medienverzeichnis/

# Regel erstellen
RewriteRule ^(.*)$ http://beispiel.at$1 [R=302,L]

Canonical Urls

Canonical Urls sind eine Erfindung von Google die dafür sorgen, dass die Kopie oder eine sehr ähnliche Seite mit hilfe eines Meta Links auf das Original verweist. So weiß Google und andere Suchmaschinen, was das Original ist.

Im Head wird folgendes Meta Tag mit dem Link zur Originalseite eingetragen:

  • <link rel=“canonical“ href=“http://www.beispiel.at/original.html“>

WordPress unterstützt seit Version 2.9 automatisch Kanonische Urls. Für ältere Versionen gibt es WordPress Plugins.

Eine schönes Tutorial wie kanonische Urls eingesetzt werden gibt es direkt von Google unter: http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html

Sei sozial und teile

Über den Autor Andreas Grundner

Ich bin Wordpress, Joomla, Typo3 Integrator, Unix Rootserver Administrator und Webanwendungsprogrammierer. Mittlerweile habe ich über 70 Webprojekte weitgehend selbstständig mit enger Kundenabsprache realisiert. Ich bin auf One Page Websites auf Wordpress-Basis spezialisiert, biete aber auch Suchmaschinenoptimierung (SEO), Blogs, Facebook, Youtube und Google+ Seiten an. Meine Verpflichtung gilt dem Datenschutz, meine Leidenschaft dem Finden und Aufzeigen von Sicherheitslücken in Webanwendungen.

6 Reaktionen zu Redirect, Rewrite, Canonical Url

  1. Michael
    13.08.2011 at 02:12 · Antworten

    Im mein-shop.com-Server ist eine Umleitung nach mein-testshop.firma.de gesetzt.

    Im mein-testshop.firma.de-Server lautet .htaccess
    RewriteCond %{HTTP_HOST} ^mein-testshop.firma.de$ [NC]
    RewriteRule ^(.*)$ http://www.mein-shop.com/$1 [R=301,L]

    Browser meldet: Fehler: Umleitungsfehler
    Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

    –> Endlos-Schleife, was mache ich falsch?

    • admin
      13.08.2011 at 09:57 ·

      Eine „Umleitung“ von mein-shop.com auf mein-testshop.firma.de erzeugt auf jeden fall eine Endlosschleife, weil die Links immer auf mein-shop.com zeigen und mein-shop wieder zurückgeleitet wird. Das ist falsch.

      Die Lösung muss so ausschauen, dass beide Domains auf den selben Server zeigen. Du musst deine neue Domain also erstmal auf das selbe Webverzeichnis zeigen lassen. Das machst du am Besten wenn du die IP und das Verzeichnis angiebst.

      Du darfst also nicht die neue Domain weiterleiten auf die alte.

      Erst wenn die Website über beide Domains aufrufbar ist, kannst du mit Redirecting die Seite so konfigurieren, dass nur noch die neue geht.

  2. Michael
    13.08.2011 at 01:57 · Antworten

    Ich habe mal analysiert:
    mein-shop.com läuft auf IIS/6.0 und mein-testshop.firma.de auf Apache Server.

    1. Derzit ist dort im Helm-GUI die Subdomain mein-testshop.firma.de eingetragen. Ich könnte mit dem Helm-GUI auf die IP Adresse mein-testshop.firma.de routen, die beherbergt jedoch mehrere Domains und Subdomains.

    2. Ok, ist das die .htaccess mit RewriteRule?

    3. Im Veyton-Webshop sind nur die neuen mein-shop.com URLs hinterlegt. Die mein-shop.com URLs werden in der Satatusleiste auch für alle Links angezeigt. Nur in der Adress Leiste erscheint mein-testshop.firma.de .

    • admin
      13.08.2011 at 09:53 ·

      Eine Domain läuft auf keinem Webserver. Die Domain zeigt nur auf ein Webverzeichnis, das auf einem Webserver liegt. Ergo kann eine Domain weder auf IIS oder Apache laufen.

      2. Nein, das muss in den Apache Vhosts eingetragen werden. Auf diese hast du aber nur auf einem Rootserver zugriff. Wenn du Parallels oder Konfix oder ein Webinterface verwendest funktioniert das einfach über das Webinterface.

      3. Oke, wenn du sagst, das alle Links auf deiner Seite „www.mein-shop.com/hugo“ sind, dann ist das schon mal oke, es geschieht nur ein Rewriting, das vermutlich mid Apache mod_rewrite geschieht, das du wiederrum in der .htaccass machst.

  3. Michael
    12.08.2011 at 11:01 · Antworten

    Ich habe bei einem Provider noch eine .com Adresse frei gehabt und nun die Domain „mein-shop.com“ registriert.

    Mein Shop mit seiner Datenbank liegt jedoch auf einer Subdomain mein-testshop.firma.de

    Frage:

    Wie leite ich meine Domaine mein-shop.com an meinen Shop mein-testshop.firma.de weiter, ohne daß sich mein-testshop.firma.de in die Browser Adressleiste schreibt.

    Dort soll natürlich mein-shop.com erscheinen.

    • admin
      12.08.2011 at 15:55 ·

      1. Ist die Domain mein-shop.com auf die IP Adresse deines Servers zu routen. Das geht innerhalb der Domainkonfiguration.

      2. Muss im Webserver die Apacheeinstellung getroffen werden. Als Nameserver oder Alias musst du mein-shop.com auf das Webverzeichnis zeigen lassen, in dem sich die index Datei befindet.

      3. Funktioniert das Aufrufen von mein-shop.com und es kommt deine Seite und es wird die Url umgeschrieben auf mein-testshop.firma.de, dann kann das entweder mit einer Apache-Einstellung zusammenhängen oder im PHP Skript ist die alte URL Konfiguriert. Und genau das ist meine Vermutung, dass innerhalb der Webshoplösung in der config Datei die alte URL angegeben ist.

Meinung sagen

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