Ich habe einen Apache 2.2-Server mit einem SSL-Zertifikat, der mehrere Dienste hostet, auf die nur mit SSL zugegriffen werden sollte.
Das heißt: https : //myserver.com/topsecret/ sollte zugelassen werden, während http : //myserver.com/topsecret/ entweder abgelehnt oder im Idealfall an https umgeleitet werden sollte.
http://myserver.com/public sollte diese Einschränkung nicht haben und entweder mit http oder https funktionieren.
Die Entscheidung, http zuzulassen / abzulehnen, wird im obersten Verzeichnis getroffen und wirkt sich auf den gesamten Inhalt aus, der sich darunter befindet.
Gibt es eine Anweisung, die in die Apache-Konfiguration eingefügt werden kann, um den Zugriff auf diese Weise abzurufen?
quelle
In der globalen Konfiguration können Sie Folgendes verwenden:
Auf ähnliche Weise können Sie eine .htaccess-Datei im ersten Verzeichnis des sicheren Verzeichnisbaums verwenden:
Letzteres kann auch in einer Directory-Direktive in der globalen oder virtuellen Host-Konfiguration platziert werden.
quelle
Alternativ können Sie die serverseitige Sprache verwenden, um die Verarbeitung für Sie durchzuführen, anstatt die Konfigurationsoptionen von Apache zu verwenden (wenn Sie möglicherweise keinen Zugriff auf die Serverkonfiguration haben).
Zum Beispiel mit PHP:
( Beachten Sie jedoch Folgendes: Wenn Sie ISAPI unter Microsoft IIS verwenden und die Anforderung nicht über HTTPS weitergeleitet wird, lautet der Wert der Variablen $ _SERVER ['HTTPS'] "off".)
quelle
Jemand hat SSLRequireSSL erwähnt, aber ich glaube nicht, dass es von selbst funktioniert, und ich habe kein erfolgreiches Beispiel dafür gefunden. Der empfohlene Weg ist https://wiki.apache.org/httpd/RedirectSSL Ich habe das angewendet und es funktioniert gut!
quelle
Angenommen, Sie verwenden VirtualHost-Direktiven,
Platzieren Sie eine Directory-Direktive in dem Nicht-SSL-VirtualHost, der den Zugriff verweigert.
Fügen Sie dann eine Directory-Direktive in den ssl virtualhost ein, die den Zugriff gewährt.
quelle
Ich habe dieses mod_rewrite immer in einer .htaccess-Datei durchgeführt, obwohl Sie es auch in Ihrer Hauptkonfigurationsdatei tun sollten.
Im Folgenden finden Sie eine Anleitung mit einigen Möglichkeiten, um dies zu erreichen: Intelligente HTTP- und HTTPS-RewriteRule-Umleitungen
quelle