HTTPS für alle! Redirect aller Requests auf SSL ohne Veränderung.

HTTPS für alle! Redirect aller Requests auf SSL ohne Veränderung.

Hier ein Codeschnipsel, mit dem es auf einfache Art- und Weise möglich ist, vob den http auf https umzustellen!


Die Lösung für mod_rewrite: redirect auf https

Vorraussetzung ist ein installiertes mod_rewrite, die Zeilen können in

  • der allgemeinen httpd.conf (nicht so sinnvoll),
  • im Virtualhost oder
  • in der Datei .htaccess im Document Root

des Auftritts untergebracht werden.

Hier die beiden Zeilen – die erste erübrigt sich, wenn man ohnehin schon Regeln zum Einsatz bringt.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dabei wird eine URL einfach nur auf https umgeschrieben, aus einem http://www.alaniso.de/index.php?name=xyz  würde also ein https://www.alaniso.de/index.php?name=xyz.
Die Condition der zweiten Zeile verhindert übrigens, dass diese Regel für eine Anfrage per https greift – es würde sonst eine Schleife entstehen.

Diese Regel funktioniert übrigens, wenn auf Port 443, also dem Port für https-Verbindungen, kein Apache lauscht, also z.B. ein eine Tomcat, Glassfish, Jira oder ähnliches)