Gegeben ist ein Loginbereich. Der beginnt in den meisten Fällen mit einer Anmeldemaske (andernfalls ist er via SSO -> Single Sign On zugänglich) und besteht aus X-Seiten. Wer es sich leisten kann und nicht unbedingt Hobby-Schrauber ist, hat ein SSL-Zertifikat im Einsatz. Blöd, wenn es nicht genutzt wird.
Ich habe mir Gedanken gemacht, auf welche Art und Weise man SSL erzwingen kann.
Ganz augenfällig natürlich mit PHP (schließlich sind wir ja auch beim PHP Blogger ;) Hierzu erstmal folgender Codeschnipsel:
if($_SERVER['SERVER_PORT'] != 443)
{
 header('Location: https://'
   . $_SERVER['HTTP_HOST']
   . $_SERVER['REQUEST_URI']
   . $_SERVER['QUERY_STRING']
 );
 exit;
}
Ganz klar, SSL verwendet meist Port 443 (nur in speziellen Fällen wird ein anderer Port verwendet), wenn nicht Port 443 verwendet wird, dann wird die selbe Seite auf die SSL URL redirected.
Die nächste Möglichkeit fällt wahrscheinlich Admins als erstes ein: Apache und das großartige mod_rewrite. Damit geht so ziemlich alles -Â auch SSL zu bezwingen:
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://
%{SERVER_NAME}
%{REQUEST_URI}
[R=301,L]
Die eingerückten Platzhalten gehören direkt hintereinander (Ist hier leider nicht besser darstellbar), die Parameter in eckigen Klammer mit einem Leerzeichen abgesetzt. In der Condition wird geprüft, ob der verwendete Serverport nicht 443 ist, dann wird ein Redirect auf die SSL-Adresse ausgelöst. Kann natürlich auch in eine .htaccess Datei gepackt werden.
Gut, die nächste (zugegebenermaßen ziemlich sinnlose und schwachsinnige) Idee wäre, den Sachverhalt mit Javascript *lol* zu prüfen und einen Redirect zu veranlassen:
if(window.location.protocol == "http:")
{
  window.location.href=
   window.location.href.replace("http", "https");
}
Boah: brutal. Also bitte nicht zu Hause nachmachen ;) Fazit: Benutzt PHP auf einem Webhoster-Paket-Webspace, wann immer möglich verwendet die Apache / .htaccess - Auf jeden Fall, wenn das Projekt auf einem Rootserver läuft.


















