SIGN IN YOUR ACCOUNT TO HAVE ACCESS TO DIFFERENT FEATURES

PASSWORT VERGESSEN!

LOGIN-DATEN VERGESSEN?

AAH, WARTET, ICH ERINNERE MICH WIEDER!

OneSystems

OneSystems

System Management aus der Schweiz

+41 (0)44 586 40 18
E-Mail info@onesystems.ch

OneSystems
Untere Grundgasse 3, 9500 Wil, Schweiz

Open in Google Maps
Haben Sie Fragen? +41 (0)44 586 40 18
  • LOGIN
  • No products in cart.
  • Home
  • Dienstleistungen
    • E-Mail
      • Mail Town
        • Angebot
      • E-Mail Gateway
      • Echo E-Mail
      • b1gMail / b1gMailServer
      • b1gMail Plugins
    • Versionsverwaltung
    • Webdesign
  • Blog
  • Hilfe & Support
  • Mein Konto
  • Kontakt
  • Home
  • Blog
  • Tipps und Tricks
  • Die Wichtigsten Weiterleitungen über .htaccess
10. April 2021

Die Wichtigsten Weiterleitungen über .htaccess

Die Wichtigsten Weiterleitungen über .htaccess

von Michael Kleger / Mittwoch, 27 Mai 2015 / Veröffentlicht in Tipps und Tricks, Webserver

Oft ist es nötig, bestimmte URLs weiter zu leiten. Die beste Möglichkeit, um Links um zu leiten, ist in meinen Augen über die .htaccess-Datei, da man hier die größte Freiheit hat. Im folgenden möchte ich eine Sammlung von Anweisungen veröffentlichen, die ich bei verschiedenen Projekten benutze.

Mögliche Gründe für eine Weiterleitung:

  • Die Domain einer Webseite hat sich geändert
  • Zusammenführung von Domains oder Subdomains
  • Relaunch einer Webseite und die damit verbundene Änderung der URL-Struktur
  • Löschung von Inhalten
  • für Tracking-Zwecke

Weiterleitungen aktivieren

Um eine Weiterleitung überhaupt erst zu ermöglichen, muss zuerst das Weiterleitungsmodul aktiviert werden. Hierfür benötigt man folgende Anweisung:

RewriteEngine On

Diese Anweisung muss einmalig VOR allen folgenden Anweisungen stehen.

Hierarchie von Weiterleitungen

Der Server geht die htaccess von oben nach unten durch. Bei der Kombination verschiedener Weiterleitungen ist also darauf zu achten, dass diese in der richtigen Reihenfolge ausgeführt werden. Der Server verwendet immer die erste Weiterleitung, deren Bedingung erfüllt ist.

Beim Aufbau der Regeln sollte also darauf geachtet werden, eher mit wichtigen bzw. speziellen Anweisungen zu beginnen und am Ende die allgemeinen zu haben.

Umleitung von Subdomain www auf Domain ohne www

Diese Weiterleitung lässt sich relativ einfach realisieren mit folgender pauschaler Anweisung realisieren:

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

Bei dieser Anweisungen werden alle Deeplinks und Parameter mit übernommen. Der Besucher würde also von “http://www.domain.com” zu “http://domain.com” weitergeleitet werden. Genauso aber auch von “http://www.domain.com/index.html” zu “http://domain.com/index.html”.

Umleitung von ohne Subdomain auf Domain mit www

Auch umgedtret ist dies einfach möglich:

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

Weiterleitung einer einzelnen Unterseite

Hierfür benötigt man folgende Anweisung:

RedirectMatch 301 ALTER_PFAD$ ZIEL_PFAD$1

Die beiden Pfade müssen ersetzt werden. Ein Beispiel könnte dann so aussehen:

RedirectMatch 301 /index.html$ /startseite$1

Hier würde der Besucher bei dem Aufruf von “http://domain.com/index.html” weiter geleitet werden zu “http://domain.com/startseite”.

Weiterleitung inkl. Unterseiten

Möchte man nicht nur eine einzelne Seite umleiten, sonder gleich alle, die einen bestimmten Pfad enthalten, muss die Anweisung angepasst werden

RedirectMatch 301 ALTER_PFAD ZIEL_PFAD$1

Die beiden Pfade müssen ersetzt werden. Ein Beispiel könnte dann so aussehen:

RedirectMatch 301 /thema1 /thema_neu$1

Hier würde der Besucher bei dem Aufruf von “http://domain.com/thema1″ wieder weiter geleitet werden zu “http://domain.com/thema_neu”. Die Weiterleitung greift aber auch für Unterseiten, wie “http://domain.com/thema1/seite1″.

Weiterleitung einer Unterseite auf eine andere Domain

Natürlich muss man nicht immer nur innerhalb einer Domain umleiten. Um eine einzelne Unterseite auf eine andere Domain um zu leiten, muss als Ziel-Pfad nur die ganze URL angegeben werden.

RedirectMatch 301 ALTER_PFAD ZIEL_URL$1

Das Beispiel würde dann also wie folgt aussehen:

RedirectMatch 301 /thema1 http://thema1.de/startseite$1

Parameter Umleiten

Oft reicht es nicht, nur statische Seiten oder Ordner um zu leiten. Müssen Parameter umgeleitet werden, werden die Anweisungen etwas komplizierter.

RewriteCond %{query_STRING} ^PARAMETER(.*)$
RewriteRule ^SEITE$ ZIEL-URL? [R=301,L]

Beispiel:

RewriteCond %{query_STRING} ^lang=en(.*)$
RewriteRule ^startseite$ /english/? [R=301,L]

Hier greift die Weiterleitung  von “http://domain.com/startseite” zu“http://domain.com/english/” nur, wenn der Parameter “lang=en” gesetzt ist.

Parameter Löschen

Es ist nicht nur möglich, Parameter zum zu leiten, sondern diese auch zu löschen:

RewriteCond %{QUERY_STRING} PARAMETER$
RewriteRule ^(.*)$ /$1? [R=301,L]

Beispiel:

RewriteCond %{QUERY_STRING} lang=de$
RewriteRule ^(.*)$ /$1? [R=301,L]

Hierbei wird auf jeder Seite, z.B. “http://domain.com/startseite?lang=de” der Parameter entfernt, also zu “http://domain.com/startseite” umgeleitet.

Das ganze funktioniert auch, wenn man den Paramenter unabhängig vom Wert löschen will. Hierfür einfach folgenden Code verwenden:

RewriteCond %{query_STRING} id=(.*)$$
RewriteRule ^(.*)$ /$1? [R=301,L]

Weiterleitungstypen

Da es nicht nur eine Weiterleitung gibt, stellt sich die Frage, wann welche zu verwenden ist. Im Kern gibt es 2 verschiedene Weiterleitungen:

Permanente Weiterleitung – 301

Diese Weiterleitung ist zu verwenden, wenn die Weiterleitung dauerhaft bestehen bleiben soll. Dies ist meist der Fall. Vor allem aber, wenn gelöschte URLs zu einem neuen Ziel umgeleitet werden.

Temporäre Weiterleitung – 302

Hier geht es um Umleitungen die nur vorübergehend sind. Das beste Beispiel hierfür sind Umleitungen während Wartungsarbeiten.

Die Umleitung selber ist in beiden Fällen technisch gleich. Der Statuscode ist jedoch für beispielsweise Suchmaschinen wichtig. Diese entscheiden anhand des Statuscodes, wie mit der alten URL umzugehen ist.

Komplikationen mit dem CMS

Werden auf einer Webseite CMS oder Frameworks eingesetzt, benötigen diese oft eigene htaccess-Weiterleitungen um zu funktionieren. Dies führt gelegentlich zu Komplikationen mit eigenen Anweisungen. Vor allem die Kombination aus WordPress und Parameter-Weiterleitungen war bei mir oft problematisch.

Um dieses Problem zu beheben, reicht es oft, die fragwürdige Anweisung einfach VOR bzw ÜBER die Anweisungen des CMS zu schreiben. So greifen diese zuerst.

Probleme mit Sonderzeichen

Alle Anweisungen in der htaccess werden mit der Reg-Ex-Logik gebaut. Da Regex selber viele Sonderzeichen als Operatoren nutzt, gibt es Komplikationen mit den Sonderzeichen in URLs.

Hier eine Übersicht über die wichtigsten Reg-Ex-Operatoren:

 ^ . $ ? * + ( ) [ ]

Soll eines dieser Zeichen in der URL vorkommen, sollte dieses mittels eines \ escapet wreden.

So wird z.B. aus “index.html” “index\.html”

Ähnliche Beiträge

  • Tweet
Tags .htaccess, Apache

About Michael Kleger

What you can read next

Unerwünschte Länder per SSH blockieren
Webseiten Benutzer per .htaccess Datei zulassen oder aussperren
QNAP TS-269 Pro check_mk_agent installieren

Schreibe einen Kommentar Antworten abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Letzten Beiträge

  • Portscan mit der PowerShell

    Test-NetConnection ist nett um einen Port zu üb...
  • Pingen mit der PowerShell

    Mit der PowerShell lässt sich einfach eine IP o...
  • Checkmk Benachrichtigung direkt in Zammad

    Wir haben schon ein paar Artikel erfasst über C...
  • Festplatte einer Virtuellen Maschine verkleinern

    Wie kann man unbenutzten Festplatten Platz eine...
  • Checkmk Benachrichtigung mit automatischer Ticket Erstellung im b1gMail Support System

    Das unserer Meinung nach beste Monitoring Syste...

Neueste Kommentare

  • Portscan mit der PowerShell - OneSystems bei Pingen mit der PowerShell
  • Michael Kleger bei Windows 10 GPO Standardprogramme festlegen
  • Susanne Bethe bei Windows 10 GPO Standardprogramme festlegen
  • sascha bei Eigener CardDAV- und CalDAV Server mit Baikal
  • Michael Kleger bei Eigener CardDAV- und CalDAV Server mit Baikal

Kategorien

  • b1gMail
  • CentOS
  • Debian
  • Linux
  • Mac OSX
  • Microsoft Exchange
  • Microsoft Outlook
  • Mint
  • Monitoring
  • Neuigkeiten
  • PowerShell
  • Sicherheit
  • Tipps und Tricks
  • VMware
  • Webseiten
  • Webserver
  • Windows

Der IT-Dienstleister OneSystems mit Sitz in Wil versteht sich als Full-Service-Dienstleister für die Umsetzung und Betreuung von IT-Infrastrukturen, Internetseiten und individueller Programmierung. Wir betreuen Kunden aus der ganzen Schweiz, Deutschland und Österreich.

Wir legen grossen Wert auf eine technisch einwandfreie Umsetzung nach aktuellen Standards bei nachhaltiger Qualität.

Letzten Blog Posts

  • Portscan mit der PowerShell

  • Pingen mit der PowerShell

  • Checkmk Benachrichtigung direkt in Zammad

Kontakt

+41 (0)44 586 40 18
Email: info@onesystems.ch

OneSystems
Untere Grundgasse 3
9500 Wil
Schweiz

Copyright © 2021 OneSystems, Alle Rechte vorbehalten.
Impressum | AGBs | Kontakt

OBEN