Ausgefallen gut ins Netz!

Hinter dem Namen Wicked Software stehen ausgefallen gute und begeisterte Entwickler, für die Software wesentlich mehr ist als funktionierender Code. Wicked Software hat sich auf Joomla! spezialisiert und bietet moderne und flexible Erweiterungen.

Wir schreiben in unseren Blog mit und über Joomla!, unsere Software, Tricks & Tipps und alles was uns in den Sinn kommt und uns nützlich erscheint.

  • htaccess
  • SEO
  • Duplicate Content

John Muellers Dreierregel

Stichwort, "Duplicate Content" (engl. für "doppelter Inhalt") ein alt bekanntes Problem, bezeichnet die Darstellung von gleichem Inhalt auf verschiedenen Webseiten. Doch spätestens seit dem neuesten Twitter-Post von John Mueller (Web- und Suchmaschinen Analyst von Google) sind die Regel nun aber klar. Um Duplicate Content zu vermeiden, sollte die URL

  1. Ein festes Protokoll (http oder htttps)
  2. Einen festen Domainnamen (mit oder ohne www)
  3. Und! Nun alle mal, entweder einen Schrägstrich (Trailing Slash) am Ende eines Pfades haben oder nicht. Sprich, wicked-software.de/produkte und wicked-software.de/produkte/ sind also doppelter Inhalt! Ein Trailing Slash beim Domainnamen hingegen macht nichts aus.

Besonders beim Einsatz von einem CMS wie Joomla u.a. aufgrund der flexiblen Möglichkeiten kann es schnell zu doppeltem Inhalt kommen. Lösungen auf Anwendungsseite wie z.B: Skript basierte Lösungen, Umleitungen, SEO Extensions etc. gibt es viele, doch, STOPP! Diese Lösung muss vor die Anwendung.

Ich zeige euch hier drei einfache htaccess-Regeln, sog. Server Regeln (für Apache) und „doppelter Inhalt“ war gestern. Keine Extension, CMS unabhängig und keine Skript Anpassung ist nötig.

Die htaccess Regeln

Nr. 1 - Eindeutiges Protokoll

SSL-Verschlüsselung (sprich HTTPS) oder nicht steht eigentlich nicht mehr zur Debatte. Seit Googles Verschlüsselungsoffensive sollte jede Seite mit einem SSL-Zertifikat ausgestattet sein (Wichtig: ohne SSL-Zertifikat darf diese Regel NICHT angewandt werden). Somit erzwingen wir für die Regel Nr. 1 das HTTPS Protokoll:

# HTTPS erzwingen
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

Nr. 2 - mit oder ohne "www"

Mit oder ohne www, eine Frage des persönlichen Geschmackes. Aus technischer Sicht ist "www" eine eigene Subdomain, welche bei den Hostern meist zusammen mit der Domain angelegt wird. Hier sollte natürlich nur eine davon die URL auflösen und die andere darauf leiten. Je nach Wahl ist eine dieser Regeln einzusetzen.

# www erzwingen
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
# www entfernen
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301,NC]

Auch hier ist zu beachten: Wenn man sich entschließt, kein SSL-Zertifikat zu verwenden, müssen die "HTTPS" zu "HTTP" geändert werden.

Nr. 3 - Trailing Slashes

Zur Einzigartigen URL gehört auch der unter Punkt 3 genannte Trailing Slash. Sprich, https://www.wicked-software.de/produkte und https://www.wicked-software.de/produkte/ sind also doppelter Inhalt! Der Trailing Slash beim Domainnamen hingegen macht nichts aus. Zur Lösung dient eine der genannten Trailing Regeln, welche ist natürlich wieder persönlich zu entscheiden.

# Kein Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,NC,L]
# Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [R=301,NC,L]

Alle Regeln nutzen eine Weiterleitung mit dem HTTP Status Code 301, um ggf. doppelt indexierte URL, auch sauber auf die neue einzigartige URL per 301 Moved Permanently (Dauerhaft verschoben) Suchmaschinen konform umzuleiten.

Nutzung der htaccess Regeln

Um die Regeln nun zu aktivieren, müssen sie in eine sogenannte ".htaccess"-Datei kopiert werden. Joomla! liefert eine fertige Datei mit dem Namen "htaccess.txt" mit, die auf dem Server durch einfaches Umbenennen aktiviert werden kann. Wichtig hierbei, der Punkt am Anfang des Dateinamens ist kein Fehler sondern ein muss! Die htaccess-Datei ist eine sog. Konfigurationsdatei, die von Apache Webservern verwendet wird um Server-Verhaltensregel Website übergreifend zu bestimmen. In unserem Fall die drei .htaccess-Regeln zur einzigartigen URL. Damit die Weiterleitungen alle funktionieren, muss als aller erstes das Apache Umleitungs-Modul (mod_rewrite) auf dem Server aktiviert werden.

# Rewrite Engine
RewriteEngine On

# Wicked Regel folgen hier

Nutzt du die Joomla! eigene htaccess-Datei, dann ist diese Zeile schon enthalten. Wichtig ist dann, dass du die Regeln erst nach der entsprechenden Zeile einfügst.

Résumé

Am Anfang steht die Entscheidung: "www" oder "nicht www" und ob es ein "Trailing Slash" geben soll oder nicht. Anschließend schreibst du die htaccess Datei mit deinen Regeln und der „RewriteEngine“. Eine .htaccess für eine https Seite mit www könnte wie folgt aussehen:

# Rewrite Engine
RewriteEngine On

# HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]

# www erzwingen
RewriteCond %{HTTP_HOST} ^deinedomain.de [NC]
RewriteRule ^(.*)$ http://www.deinedomain.de/$1 [L,R=301,NC]

# Kein Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,NC,L]

Diese .htaccess Datei kommt in die Website Root, dem Heimatverzeichnis der Domain. Bei Joomla wäre dies das Verzeichnis der Haupt- index.php. Sollte sich dort bereits eine htaccess Datei befinden, können diese Regeln natürlich einfach ergänzt werden.

Je nach Einsatz kann es sein, dass die Trailing Slash Regel noch angepasst werden muss. Für Joomla! CMS Freunde, hier werden Beispielsweise Anfragen per Post an Slash/ URLs gesendet. Eine Weiterleitung verwirft aber die gesendeten POST-Daten und leitet per GET weiter. Deshalb sollte die nachfolgende Regel oberhalb der Traling Slash Regel platziert werden, um POST-Anfragen durch zu lassen.

# Trailing Slash - Allow POST
RewriteCond %{REQUEST_METHOD} !^(POST) [NC]

Apropos Joomle Freunde: Joomla! selbst generiert die URLs immer ohne "Trailing Slashes", also sollte die htaccess-Regel dies beachten. Eine Lösung anstatt der Tailing Slash Regel und zusätzlich zur .htaccess, wäre natürlich auch SEF (Suchmaschinen freundliche URLs) mit Dateiendung in der Joomla Konfiguration einzustellen. Natürlich wer es mag, denn viele Wege führen nach Rom.