PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : refresh auf https


sysop
23.05.2005, 22:21:51
hallo zusammen

für euch ist das sicher keine grosse sache, ich fummle nun aber schon seit 2 stunden herum.
wie kann ich es schaffen, dass eine seite die per http:// aufgerufen wird automatisch auf https.// refreshed. gibt es da einen .htaccess eintrag.

geneuer ist es so.
ich habe mir einen kleinen mailserver gebaut, der mit squirrelmail arbeitet. nun kann man wahlweise über http oder über https auf das squirrelmail verzeichnis, ich möchte aber nur https.

danke sys ;-)

c4
24.05.2005, 08:14:46
Schon mal mit header() versucht? header('Location: https://www2.asd.com/qwd.php');

feuervogel
24.05.2005, 10:40:29
vielleicht noch vorher testen, ob die seite nicht schon mit https aufgerufen wurde...

if( $_SERVER[ 'SERVER_PORT' ] != 443 )
Header( "Location:https://www.bla.blubb" );

meikel
24.05.2005, 11:06:56
@feuervogel:
wärst Du ggf. dazu bereit, das ! durch ein = zu ersetzen?

xabbuh
24.05.2005, 12:07:00
if( $_SERVER[ 'SERVER_PORT' ] != 443 )
Header( "Location:https://www.bla.blubb" );
Muss eine verschlüsselte Seite zwingend über Port 443 laufen?

@feuervogel:
wärst Du ggf. dazu bereit, das ! durch ein = zu ersetzen?
Warum? Die Weiterleitung soll doch nur dann erfolgen, wenn die Seite nicht per https aufgerufen wurde.

sysop
24.05.2005, 13:33:45
hallo und danke für eure rückmeldung.

ich habe das nun durch eine .htaccess datei hinbekommen, ich hatte ein unterverzeichnis übersehen, auf das von der index.php verwiesen wird, deshalb hatte das nicht geklappt.

die lösung (die mir persönlich am besten gefällt) sieht nun so aus:

eine .htaccess mit folgendem inhalt erstellen:
RequireSSL on

in die entsprechenden verzeichnisse kopieren, das sind bei squirrelmail
..../squirrelmail/
..../squirrelmail/src/ (das hatte ich übersehen)

dann wird immer eine https verbindung verlangt.

danke nochmal
gruss sys;-)

meikel
24.05.2005, 14:06:29
Muss eine verschlüsselte Seite zwingend über Port 443 laufen?
Nein.

if (isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == 'on ')
print 'ssl';
else
print 'kein ssl';
Warum? Die Weiterleitung soll doch nur dann erfolgen, wenn die Seite nicht per https aufgerufen wurde.
Jut, diese Besonderheit war mir entgangen.

feuervogel
24.05.2005, 15:39:26
Muss eine verschlüsselte Seite zwingend über Port 443 laufen?

nein, aber standardmäßig ist das so. natürlich kann man auch testen, ob die verbindung über port 80 läuft (obwohl ja nicht mal das sein muss) und dann weiterleiten...

edit: grad las ich meikels lösung durch; dies ist natürlich das eleganteste :-)