apache: Automatische SSL Umleitung

Manchmal macht es Sinn gewisse Seiten oder Unterseiten automatisch auf eine SSL Seite umzuleiten, etwa: "webmail.example.com" oder "myshop.example.com/bestellung/"

Dies geht ganz einfach mit einer .htaccess Direktive, oder alternativ global ein einem apache config file (bei Debian z.B.: /etc/apache2/conf.d/ssl-redirect.conf )

Folgendes mod_rewrite Statement ist dazu nötig:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

oder möchte man nur bestimmte Pfade (z.B.: /anmeldung/) weiter leiten:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond   %{HTTPS} !=on
  RewriteRule   ^anmeldung(.*)$ https://%{SERVER_NAME}/anmeldung$1 [L,R]
</IfModule>

Dies leitet z.B. eine URL: http://www.example.com/anmeldung auf https://www.example.com/anmeldung weiter.

Alternativen

Alternativ kann man anstelle von: %{HTTPS} !=on auch: %{SERVER_PORT} !^443$ verwenden.

Und Anstelle von: {SERVER_NAME} geht auch: {HTTP_HOST}

Wenn man das global für alle Domains auf dem Server machen möchte kann man die obige Anweisungen auch ins conf.d/ Verzeichnis des Webservers legen, z.B.: /etc/httpd/conf.d/ssl-redirect.conf
Dann müssen aber natürlich sämtliche Domains auch per HTTPS erreichbar sein!

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

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