Automatischer Redirect auf HTTPS mit Ausnahme eines Ordners
In der heutigen Zeit solltet Ihr jede Unterseite eures Webauftritts zwingend per HTTPS ausliefern.
Manchmal kann es jedoch notwendig sein, einzelne Ordner von dieser Zwangsauslieferung via HTTPS auszunehmen und den Zugriff via HTTP zu gestatten.
Im Beispiel möchten wir sämtliche URLs unserer Webseite einzig per HTTPS ausliefern.
Wenn beim Aufruf der Seite festgestellt wird, dass diese nicht bereits via HTTPS abgerufen wird, soll auf HTTPS umgeleitet werden. Ausnehmen von dieser Regelung, möchten wir einzig den Ordner „customers“.
Anwendungsfall:
a) http://404media.de -> Redirect auf https://404media.de
b) http://404media.de/kontakt -> Redirect auf https://404media.de/kontakt
c) http://404media.de/customers -> kein Redirect, Auslieferung von http://404media.de/customers
Hierfür ist folgende Anpassung an der .htaccess notwenig, um den Apache Webserver entsprechend zu konfigurieren:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/customers/? [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Die 4 Zeilen aktivieren zunächst die RewriteEngine. Hiermit wird es uns möglich, an den Server gerichtete Anfragen intern umzuschreiben oder weiterzuleiten.
In der zweiten Zeile prüfen wir, ob die aktuelle URL bereits über HTTPS abgefragt wird. Ist dem nicht so, greift ferner unsere zweite Rewrite-Condition. Diese nimmt den Pfad „customers“ von der Regelung aus und schickt den Besucher schließlich mit einem 301-Redirect und unter Integration sämtlicher Request-Parameter auf die HTTPS Version der URL.