Vorwort
Erstens: Ein einfaches Umschreiben von Port 80 -> Port 443 behebt dies NICHT . In fast jeder vorherigen Frage, jedem Mail-Thread, Forum-Thread usw. habe ich festgestellt, dass dies die erste ignorante Antwort war und mehrmals nachgeprüft wurde.
Zweitens: Ja, ich weiß, dass Sie keinen HTTP- und HTTPS-Verkehr auf demselben Port bereitstellen können. Das ist das nicht.
Szenario:
Apache Server, der mehrere Sites über Portmultiplikation hostet. Port 80 dient einer öffentlichen Site. Port 443 dient der sicheren Version dieser Site.
Die Ports 7443, 8443 und 9443 bedienen jeweils separate SSL-gesicherte Standorte.
Wenn ein Benutzer die URL falsch eingibt oder einen ungültigen Link erhält, z. B. http: //hostname.tld: 7443 , wird ihm die folgende lächerliche Seite angezeigt :
Anstatt dass der Server sie nur zu https: //hostname.tld: 7443 umleitet .
Meine Frage ist, wie können Sie im Namen von Zeus 'Arschloch das Verhalten von Apache oder diese Fehlermeldung ändern, um den Benutzer automatisch umzuleiten?
Apache bedient offensichtlich eine Nicht-https-Anforderung (um diese Fehlermeldung anzuzeigen), obwohl sie für HTTPS konfiguriert ist. Es erscheint mir bemerkenswert dumm, nicht nur standardmäßig die Weiterleitung durchzuführen, sondern ich kann auch verstehen, warum sie sich so verhalten haben, auch wenn ich damit nicht einverstanden bin. Meine Frage ist also: Kannst du es ändern? Sie behandeln den Fehler ÜBERALL, und da Apache das Füllhorn für die Konfiguration ist, liegt es nahe, dass es irgendwo eine Anweisung gibt, um dieses Verhalten zu behandeln, aber ich konnte es in mehreren Stunden des Bastelns bisher nicht finden.
Aktualisieren:
Ich habe verschiedene Dinge versucht, darunter:
Verwenden von
ErrorDocument 400
Anweisungen, um zu einem CGI und einem PHP-Skript zu gelangen, die nur sendenStatus 301
undLocation
Header. Dies führt zu einer leeren Seite. Wenn SieErrorDocument 400 https://hostname.tld:7443
einfach verwenden, wird dieser Link auf der Seite angezeigt.Wenn Sie fast jede Kombination von
mod_rewrite
I oder Google verwenden, können Sie sich ein Bild machen, einschließlich pauschaler Aussagen, die die Website vollständig steuern. diese funktionieren nie . Sie tun buchstäblich nichts. Ich vermute, dass Apache den oben genannten Fehler behebt, bevor er überhaupt versucht, die Anweisungen zum Umschreiben zu verarbeiten.
Ich kann aufgrund der benutzerdefinierten Portverwendung keine portbasierten Weiterleitungen verwenden. Ich kann keine skriptbasierten Weiterleitungen verwenden, da sie aufgrund der Nichtübereinstimmung von http / https nie bereitgestellt werden. Ich bin fast bereit, dies auf einen Fehler oder ein unbeabsichtigtes Verhalten zurückzuführen, aber jemand hatte die Voraussicht, eine sehr benutzerdefinierte Fehlermeldung einzutragen. Er machte sich nicht die Mühe zu denken, dass Sie vielleicht nur zum Wagen fahren möchten URL, die sie bereits bereitstellen ?