Weiterleitungen (Redirects) in Contao einrichten

Weiterleitungen sind vor allen Dingen nach einem Website-Relaunch interessant, wenn sich die Seitenstruktur und damit die Seitenaliase verändert haben.

Aber auch, wenn man kürzere URLs, beispielsweise in Printprodukten, verwenden will, kann eine Weiterleitung für einzelne Seiten sinnvoll sein.

Und nicht zuletzt spielen Weiterleitungen im SEO-Bereich immer wieder eine wichtige Rolle, zum Beispiel um Duplicate Content zu vermeiden.

Dabei gibt es 2 Wege, um für Contao Projekte Weiterleitungen einzurichten: 1. Über die .htaccess und 2. über eine Contao Extension.

1. Manuelle Weiterleitung per .htaccess

Bei einer Weiterleitung per .htaccess gibt es unterschiedliche Befehle, um das gleiche Ziel zu erreichen. Wir nutzen meist den Befehl RewriteRule, da er von Contao genutzt ebenfalls genutzt und den meisten Hostern unterstützt wird.

Wichtig: nicht nur der Befehl, sondern auch die Stelle in der .htaccess spielt eine Rolle, ob eine Weiterleitung ausgeführt oder ignoriert wird. Seit Contao 4 ist die .htaccess deutlich schlanker geworden, sodass sie sich leichter beschreiben lässt. Nehmen wir als Beispiel die aktuelle .htaccess von Contao 4.9 (Stand 13.03.21): .htaccess bei github.

Um deine Weiterleitungen wirksam einzubinden, solltest du sie oberhalb von Zeile 48 einfügen. Denn die Weiterleitung in Zeile 49 leitet alle Anfragen, die noch nicht weitergeleitet wurden, an

^ % {ENV:BASE}/app.php 

weiter.

Da Änderungen an der .htaccess u.U. dazu führen können, dass die komplette Website nicht mehr erreichbar ist, lohnt sich ein Backup der Datei auf jeden Fall. Oder du verwendest die folgende Erweiterung.

1.1. Einfache Seiten-Weiterleitung

Für eine einfache Weiterleitung, z.B. von der alten Unterseite unternehmen/ zur neuen Unterseite ueber-uns/ sieht das ganze wie folgt aus:

RewriteRule ^unternehmen/(.*)$ /ueber-uns/$1 [L,R=301]

1.2. Contao Weiterleitung: „ohne www“ auf „mit www“ und umgekehrt

Eine Weiterleitung von „ohne www“ auf „mit www“ oder umgekehrt lässt ebenfalls über die .htaccess einrichten. Bei Contao 3.5 war es noch so, dass die Weiterleitungen in der .htaccess vorbereitet waren, seit Contao 4 musst du die Zeilen für die Weiterleitung selbst einfügen:

  ##
  # Uncomment the following lines to add "www." to the domain:
  #
  #   RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  #   RewriteRule (.*) http://www.example.com/$1 [R=301,L]
  #
  # Uncomment the following lines to remove "www." from the domain:
  #
  #   RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  #   RewriteRule (.*) http://example.com/$1 [R=301,L]
  #
  # Make sure to replace "example.com" with your domain name.

Je nachdem, ob du von „ohne ww“ auf „mit www“ oder umgekehrt umleiten möchtest, kommentierst du die entsprechenden Zeilen aus (entfernst die # davor).

1.3. Weiterleitung auf HTTPS per .htaccess erzwingen

Damit Suchmaschinen wie Google nun nicht durcheinander kommen und die Website womöglich doppelt indizieren, solltest du Besucher und Suchmaschinen möglichst nur auf die HTTPS-Version weiterleiten.

Hier die Anpassungen, die du in die .htaccess-Datei schreiben solltest:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Mit diesen beiden Zeilen leitest du alle HTTP-Aufrufe (Port 80) an HTTPS weiter. Je nach Server- und Domaineinstellungen können die Anweisungen anders aussehen (siehe Forum).

Manche Hoster bieten auch die Möglichkeit, in der Benutzeroberfläche eine Weiterleitung zu erzwingen. In diesem Fall kannst du dir die Anpassung oben sparen.

Mehr zum HTTPS findest du auch im folgenden Artikel: Contao-Website auf HTTPS umstellen

Weiterleitung über die Contao Erweiterung URL Rewrite bundle

Dank der Erweiterung von Terminal 42 kannst du Weiterleitungen auch bequem über das Contao Backend einrichten. Nach der Installation steht dir einer neuer Menüpunkt URL Umschreiberegeln im Backend unter System zur Verfügung. Hier kannst du neue Weiterleitungen anlegen.

Dabei sind auch kompliziertere Bedingungen und die Verwendung von Inserttags möglich.

Alle oben genannten Beispiele (Seitenweiterleitung, mit www und https) sind auch mit der URL Rewrite Erweiterung möglich. Ein paar Beispiele findest du direkt auf Github:

Ich nutze die Erweiterung mittlerweile auch für diese Website, um zum Beispiel alte Tipps und Tricks auf den neuen Wissensbereich umzuleiten.

Einziger Nachteil: Jede Contao-Erweiterung muss gepflegt und aktualisiert werden. Deswegen solltest du dir immer überlegen, ob du eine Extension wirklich benötigst, wenn du den gleichen Effekt auch mit ein paar Zeilen über die .htaccess haben kannst.