TIL: HTTPS Redirect done right
17. Oct. 2016
Update: Bitte diesen aktuelleren Beitrag beachten!
Durch einen Kommentar im Heise Forum, den ich auf dem Heimweg zufällig gelesen habe, habe ich gelernt, dass ich meine HTTPS redirects falsch mache. Man sollte keinen 302 (Found), sondern 301 (Moved permanently) Status für die Umleitung benutzen. Warum? Status 302 suggeriert dem Browser, dass der Inhalt, den er sucht, lediglich temporär unter einer anderen Adresse verfügbar ist. Der Browser soll weiterhin die Ursprungsadresse nutzen. Status 301 hingegen gibt dem Browser zu verstehen, dass der Inhalt umgezogen ist und er in Zukunft die neue statt der alten Adresse nutzen soll.
Apache Config
Es genügt im Dokumentenverzeichnis eine .htaccess
Datei mit folgendem Inhalt anzulegen:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Ob alles funktioniert, kann mit curl
gecheckt werden:
# curl -I dermarcel.de
HTTP/1.1 301 Moved Permanently
Date: Mon, 17 Oct 2016 17:28:46 GMT
Server: Apache Location: https://dermarcel.de/
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
Apache config - So macht man's nicht
Vorher hatte ich in der Seitenkonfiguration ein Redirect
. So macht man's nicht … :)
<VirtualHost *:80>
ServerName www.dermarcel.de
ServerAlias dermarcel.de
Redirect / https://www.dermarcel.de
DocumentRoot /var/www/wordpress
</VirtualHost>