In einem aktuellen TYPO3-Projekt bin ich auf das altbekannte und doch häufig unterschätzte Problem des Duplicate Contents gestoßen. Mit Hilfe eines kleinen Scripts in der .htaccess-Datei im Rootverzeichnis eurer Webpräsenz könnt ihr den Duplicate Content um die Hälfte reduzieren, in dem ihr die Webseite nur über eine URL verfügbar macht. Anstatt das die Domain über http://blogrammierer.de UND http://www.blogrammierer.de erreichbar ist, sollte sie nur über eine der beiden Varianten erreichbar sein.

Um den Duplicate Content zu reduzieren und die Webseite unter nur einer eindeutigen URL verfügbar zu machen, könnt ihr folgende htaccess Scripte verwenden.

Domain mit www-Subdomain

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.blogrammierer.de$ [NC]
RewriteRule ^(.*)$ http://www.blogrammierer.de/$1 [L,R=301]

Wenn ihr dieses kleine Snippet in eure htaccess-Datei im Rootverzeichnis der Webseite eingefügt habt, sollte jede Anfrage, die an http://blogrammierer.de geht auf http://www.blogrammierer.de weitergeleitet werden.

Eine kurze Erklärung, was genau das oben stehende Skript macht. In der ersten Zeile wird lediglich die RewriteEngine aktiviert, so dass der Apache mit Hilfe des mod_rewrite-Moduls die Anfragen weiterleiten kann. In der zweiten Zeile wird die URL-Basis gesetzt. In diesem Beispiel bleibt die URL-Basis auf dem Rootverzeichnis stehen.

Der interessante Teil folgt in der Zeile 3. Dort wird geschaut, ob in der Variable HTTP_HOST etwas anderes als www.blogrammierer.de steht. Liefert dieser Vergleich true zurück, so wird in Zeile 4 die eigentliche Umleitung vorgenommen. Das NC am Ende der Zeile 4 steht für non-casesensitive, es wird also die Groß-/Kleinschreibung ignoriert. Die RewriteRule in Zeile 4 sorgt dafür, dass alle Anfragen an http://www.blogrammierer.de/ gesendet werden. Alle angehängten URL-Pfade werden mit Hilfe des $1-Ausdrucks ebenfalls an die weitergeleitet URL angehängt, so dass keine Parameter, Pfade, etc. verloren gehen.

Die Angabe [L,R=301] am Ende der Zeile 4 sorgt dafür, dass das Rewriting endet (Last-Flag) und die Anfragen mit dem HTTP-Statuscode 301 umgeleitet werden. Es werden durch die Angabe des L-Flags die RewriteRules, die nach dieser Zeile kommen, nicht mehr von mod_rewrite ausgeführt.

Domain ohne www-Subdomain

Das oben vorgestellte Skript kann natürlich auch auf eine Variante ohne www-Subdomain umgeschrieben werden, wenn euch diese URL-Darstellung besser gefällt. Dazu kann das nachfolgende Snippet verwendet werden und in die .htaccess-Datei eingefügt werden:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.blogrammierer.de$ [NC]
RewriteRule ^(.*)$ http://blogrammierer.de/$1 [L,R=301]

Um es Google so einfach wie möglich zu machen, sollte ihr versuchen eure Webseite nur unter einer (eindeutigen) Url auszuliefern. Mit Hilfe der oben vorgestellten Skripte könnt ihr das Problem mit bzw. ohne www-Subdomains leicht aus der Welt schaffen.