.htaccess-Umleitungen

Eine .htaccess-Datei ist eine Server-Konfigurationsdatei, mit der verzeichnisbezogene Regeln am Webserver aufgestellt werden. So kann z.B. nur bestimmten Benutzern der Zugriff über einen Passwortschutz oder über die IP-Adresse erlaubt werden. Auch suchmaschinenfreundliche URLs lassen sich mittels einer .htaccess-Datei generieren, ebenso wie Domain-Umleitungen. Daher nennen wir folgend Beispiele für Basis-Umleitungen, die natürlich nach Bedarf umgeschrieben und erweitert werden können.

301-Weiterleitung

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ http://www.zieldomain.tld/$1 [R=301,L]

Ergebnis: Die aufgerufene Domain wird auf www.zieldomain.tld umgeleitet.
Im Browser wird in der Adresszeile nicht mehr die ursprüngliche Domain, sondern die Zieldomain angezeigt. Wurden bei der ursprünglichen Domain Unterverzeichnisse www.ursprungsdomain.de/unterverzeichnis oder Dateien mit angegeben, werden diese beibehalten.

Die .htaccess-Datei darf nicht im Verzeichnis der Zieldomain liegen, da sonst eine Endlosschliefe entsteht.

Umleitung auf die Domain mit www. via .htaccess

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

Ergebnis: Wird die Domain ohne www. aufgerufen (http://meinedomain.tld), wird sie auf www. umgeleitet (http://www.meinedomain.tld)

Umleitung auf https://

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://meinedomain.tld/$1 [R=301,L]

Ergebnis: Aufrufe der Domain mit http:// (http://meinedomain.tld) werden auf https:// umgeleitet (https://meinedomain.tld)

QSA

Die Flag [QSA] sorgt dafür, dass auch Query-Strings wie z.B. www.meinedomain.tld/datei.php?id=xxx&key=value mit übergeben werden.

RewriteRule /pages/(.+) /page.php?page=$1 [QSA]

Ergebnis:Aufrufe werden mitsamt aller Query-Strings umgeleitet.

Für Fragen rund um .htaccess lohnt sich auch immer ein Blick in unser Forum. In der Community sind so einige hilfsbereite Experten, die noch jede .htaccess Frage klären und jedes .htaccess-Problem lösen konnten! 🙂

Anna Philipp

Über den Autor

Anna Philipp

Anna arbeitet seit 2006 bei DomainFactory. Als Social Media und Content Manager vertritt sie DF in den sozialen Netzwerken (Facebook, Twitter, Googleplus und natürlich im DF-Blog). In ihrer Freizeit findet man Anna - sofern sie mal nicht online ist - höchstwahrscheinlich zwischen Rührschüsseln und Schneebesen am Backofen.

11 Kommentare

Die von Ihnen hier erhobenen Daten werden von der domainfactory GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.df.eu/datenschutz


  • ad1601com
    ad1601com - 22. September 2014 um 10:23 Uhr

    Und mein Lieblingsschnibbsel fehlt:

    RewriteEngine on

    RewriteCond %{HTTP_HOST} !^www.domain.de$ [nc]
    RewriteRule (.*) http://www.domain.de/$1 [R=permanent,nc,L]

    „Leite alle Zugriffe auf die Hauptdomain um, egal über welche Domain der Zugriff erfolgt.“.

    Sehr zweckmäßig bei Kunden, die mehrere Domains für eine einzige Seite besitzen.

    Grüße
    Andreas

  • Anna
    Anna - 22. September 2014 um 12:00 Uhr

    Danke für den Zusatz 🙂

  • alexplus
    alexplus - 22. September 2014 um 13:50 Uhr

    Wie sieht es aus mit der Weiterleitung von www auf nicht-www (und umgekehrt) oder dem Vermeiden von doppelten Umleitungen von nicht-https-nicht-www auf mit-https-mit-www?

    Normalerweise kaskadieren diese Weiterleitungen ja sonst zu http://domain.de -> http://www.domain.de -> https://www.domain.de

    Da fände ich einen Schnipsel mal äußerst hilfreich! 🙂

  • Tony
    Tony - 22. September 2014 um 22:03 Uhr

    @alexplus: Gib bei beiden Weiterleitungen direkt die richtige Adresse (also mit https und www) als Ziel an, dann gibt’s keine kaskadierte Weiterleitung.

    Die Punkte in den Domainnamen sollten übrigens escaped werden (\. statt .), sonst matchen die beliebige Zeichen, nicht nur Punkte. Bei Hostnames ist das kaum kritisch, aber wer’s hier falsch lernt, macht’s auch an anderen Stellen falsch.

    Für die Umleitung von www auf nicht-www passt du entsprechend die Regular Expression der Bedingung und das Weiterleitungsziel an:
    RewriteCond %{HTTP_HOST} ^www\.meinedomain\.tld$
    RewriteRule .* https://meinedomain.tld/$1 [R=301,L]

    Zu mod_rewrite gibt es eine Dokumentation: http://httpd.apache.org/docs/2.4/rewrite/intro.html

  • alexplus
    alexplus - 25. September 2014 um 11:58 Uhr

    Vielen Dank, Tony! Heutzutage kann man sich einfach nicht mehr in alles ewig tief einarbeiten, aber die Doku ist mal als Lesezeichen markiert.

  • Dirk
    Dirk - 23. April 2015 um 08:04 Uhr

    Hallo,
    wie bekommt man eine versteckte Weiterleitung mit .htaccess hin? Aufgerufene URL soll weiter für den Enduser im Adressfeld sichtbar sein.
    Vielen Dank.

    VG
    Dirk

    • Anna
      Anna - 23. April 2015 um 08:49 Uhr

      Soll die ursprüngliche URL sichtbar bleiben, geht das nur mit einer Frame-Weiterleitung.

  • Phil
    Phil - 27. Januar 2017 um 13:33 Uhr

    Hi,
    leider zeigen mir mehrere SEO-Software Applikationen an, dass die Seite sowohl über www. als auch ohne aufrufbar ist bzw. dies nicht überprüfbar sei. Hatte alles wie oben eingetragen (https + Umleitung auf www) und soweit funktioniert auch alles im Browser – abgesehen von einer Variante: bei https://domain.tld wird der Server nicht gefunden. Bei https://www.domain.tld dagegen schon

    Grüße und Dank im Voraus
    Phil

  • Johann
    Johann - 22. Februar 2018 um 10:08 Uhr

    Good morning Anna

    Trust this finds you well. I would like to know, now that the https status is approved, how do I actually make it visible on/within my websites url? It is also quite urgent as at the moment my Google analytics is not working and it is probably because of that on the Google analytics the https is visible but not on the website.

    Kind regards,
    Johann

    • Nils Dornblut
      Nils Dornblut - 23. Februar 2018 um 00:19 Uhr

      What do you mean by an approved status and what do you want to make visible?

  • Thorsten
    Thorsten - 14. Oktober 2018 um 17:09 Uhr

    Hallo,
    ich habe mal eine Frage. Wie muss die Weiterleitung in der `.htaccess` aussehen, wenn ich folgendes möchte. Leider zeigt mir mein Browser „too many redirects“ an.

    Man kann im Browser unterschiedliche URLs eingeben, die im Ergebnis nur ein Ziel haben sollen:
    `a) http://meine-domain.de` bzw. `meine-domain.de`
    `b) http://www.meine-domain.de` bzw. `www.meine-domain.de`
    `c) https://meine-domain.de`
    `d) https://www.meine-domain.de`

    Das Ziel soll immer d) sein, egal was in der Browserzeile eingegeben wird.

    Wie sieht es dann aus?