Oft ist eine Webseite über mehrere URLs erreichbar. Als Beispiel dient dieser Blog hier:
- blog.5th.ch/
- www.blog.5th.ch/
- 5th.ch/blog/
- www.5th.ch/blog/
- koma5.me/blog/
- usw.
Das sind fünf Wege, die zu diesem Blog führen. Fünf völlig verschiedene Links mit ein und demselben Inhalt. Einerseits sieht das überhaupt nicht schön aus und andererseits entsteht so ein Link-Wildwuchs. Deshalb ist es empfehlenswert, eine canonical URL zu definieren. Eine einzige URL, unter welcher die Webseite erscheinen soll. Alle anderen werden darauf umgeleitet.
Das .htaccess
File ist eine ganz nützliche Sache. Es enthält Apache Konfigurationen pro Verzeichnis, mit welchem ganz leicht Weiterleitungen definiert werden können. In diesem Sinne habe ich der .htaccess
dieses Blogs folgende Zeilen hinzugefügt:
#redirect everything to canonical URL exept the canonical URL itself...
RewriteEngine On
RewriteCond %{HTTP_HOST} !^blog.5th.ch$
RewriteRule ^(.*)$ http://blog.5th.ch/$1 [R=301,L]
Was soviel Bedeutet wie:
hostname != blog.5th.ch
redirect to blog.5th.ch (canonical URL)
Wenn der aufgerufene Hostname nicht die canonical URL ist, dann leite die Anfrage an die canonical URL um. Gleichzeitig wird der Pfad der ursprünglichen URL an die canonical URL gehängt. Das heisst, aus dem
www.blog.5th.ch/htaccess-redirect-everything-to-canonical-url
wird
blog.5th.ch/htaccess-redirect-everything-to-canonical-url
.
Die Weiterleitung wird allerdings auf Unterordner vererbt, was ziemlich störend sein kann.