Wie leitet man HTTPS zu HTTP um? Das Gegenteil von dem, was (scheinbar) jeder lehrt.
Ich habe einen Server auf HTTPS, für den ich eine SSL-Zertifizierung bezahlt habe, und einen Spiegel, für den ich keine habe und der nur für Notfälle zur Verfügung steht, sodass es sich nicht lohnt, eine Zertifizierung zu erhalten.
Auf den Desktops meines Kunden befinden sich einige Verknüpfungen, die auf http://production_server
und verweisen https://production_server
(beide funktionieren). Ich weiß jedoch, dass, wenn mein Produktionsserver ausfällt, die DNS-Weiterleitung aktiviert wird und die Clients, deren Verknüpfung "https" enthält, auf https://mirror_server
einen großen, fetten roten Bildschirm von Internet Explorer 7 starren (was nicht funktioniert) für meine Firma.
Leider kann ich dies nicht einfach auf Client-Ebene umschalten. Diese Benutzer sind sehr Computer-Analphabeten: und es ist sehr wahrscheinlich, dass sie HTTPS-Unsicherheitsfehler sehen (insbesondere die Art und Weise, wie Firefox 3 und Internet Explorer 7 heutzutage damit umgehen: FULL STOP, irgendwie dankbar, aber hier nicht hilfreich LOL).
Es ist sehr einfach , Apache-Lösungen für die http-> https-Umleitung zu finden , aber für mein Leben kann ich nicht das Gegenteil tun.
Ideen?
Antworten:
Dies wurde nicht getestet, aber ich denke, dies sollte mit mod_rewrite funktionieren
quelle
Beachten Sie, dass die Rewrite-Engine erst nach Eingang der HTTP-Anforderung aktiviert wird. Dies bedeutet, dass Sie weiterhin ein Zertifikat benötigen, damit der Client die Verbindung zum Senden der Anforderung herstellen kann.
Wenn der Sicherungscomputer jedoch denselben Hostnamen zu haben scheint (was den Client betrifft), sollte es keinen Grund geben, warum Sie nicht dasselbe Zertifikat wie der Hauptproduktionscomputer verwenden können.
quelle
Basierend auf der Antwort von ejunker ist dies die Lösung, die für mich funktioniert, nicht auf einem einzelnen Server, sondern in einer Cloud- Umgebung
quelle
Für diejenigen, die eine
.conf
Datei verwenden.quelle
Wenn keine der oben genannten Lösungen für Sie funktioniert (für mich nicht), hat dies auf meinem Server funktioniert:
quelle
L,
(was "Letzte Regel" bedeutet). Wenn Sie WordPress oder ein anderes CMS verwenden, verhindert dasL
Flag möglicherweise, dass die Seitenanforderung ordnungsgemäß weitergeleitet wird. Verwenden Sie stattdessen:RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301]
all das hat nicht funktioniert, als ich cloudflare verwendet habe, dieses hat für mich funktioniert:
und dieser funktioniert definitiv ohne Proxies im Weg:
quelle
Es ist besser, mod_rewrite zu vermeiden, wenn Sie können.
In Ihrem Fall würde ich das Umschreiben durch Folgendes ersetzen:
Die
<If>
Direktive ist nur in Apache 2.4+ gemäß diesem Blog hier verfügbar .quelle
/usr/sbin/httpd -v
das funktioniert bei mir.
Achten Sie darauf, beide Ports 80 und 443 abzuhören.
quelle
Keine der Antworten funktioniert für mich auf der Wordpress-Website, aber die folgenden funktionieren (sie ähneln anderen Antworten, haben jedoch eine kleine Änderung).
quelle
Soweit mir bekannt ist, funktioniert eine einfache Meta-Aktualisierung auch fehlerfrei:
quelle