Gyakori üzemeltetői feladat, hogy egy oldalt csak biztonságos HTTPS csatornán keresztül szeretnénk elérhetővé tenni. Sajnos nem minden üzemeltetőnek tűnik fel, hogy az is a feladat része, hogy az apró “s” betűt be nem gépelő felhasználókat barátságosan átirányítsuk a biztonságos címre: tegye fel a kezét, aki még nem látott 403.4 Forbidden: SSL is required to view this resource hibaüzenetet. Na ugye. Mennyivel szebb lenne, ha az alapértelmezett hibaüzenet helyett eljuttatnánk a felhasználót oda, ahova indult, csak éppen nem HTTP-n, hanem HTTPS-en keresztül.
A feladat megoldására számos módszer létezik, mutatok egy nagyon primitív megoldást, ami biztosan megy minden webkiszolgáló esetén. A módszer lényege, hogy felüldefiniáljuk az alapértelmezett 403.4 hibaüzenetet egy saját HTML oldallal. IIS 6 esetén például így:
A megadott sslredirect.htm fájl pedig mindössze ennyi:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="javascript">
location.href = 'https://' + location.href.substr( 7 );
</script>
</head>
<body>
</body>
</html>
Lehet, hogy a megoldás nem a legszebb, de egyszerűen telepíthető, sima HTML, nem kell hozzá sem ASP.NET, sem PHP, de még XML buherálás sem. Ráadásul nem csak a http://intranet, hanem a http://intranet/sites/akarmi típusú címekkel is megbírkózik, tehát SharePointhoz is tökéletes.
Ti hogyan oldjátok ezt meg?