Ich habe eine Website, die von Apache 2.4 bereitgestellt wird und alle Inhalte über HTTPS bereitstellen soll. Ich habe bereits entsprechende Umleitungen eingerichtet, die korrekt funktionieren, aber keine pathologischen Fälle erkennen. Ich wollte diese Situation verbessern und stieß bei meinen Hausaufgaben auf das folgende Beispiel indieses Dokument:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/admin/" "https://www.example.com/admin/"
</If>
Ich habe dies leicht geändert, um meine Situation widerzuspiegeln:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/" "https://www.example.com/"
</If>
Wenn ich jetzt versuche, eine beliebige URL meiner Site anzuzeigen, gerät der Browser in eine Endlosschleife mit Weiterleitungen.
Ich vermute, dass das Beispiel tatsächlich falsch ist. SERVER_PROTOCOL
scheint den Wert HTTPS
unter keinen Umständen zu enthalten. Stattdessen enthält es, wie ich in anderen Artikeln gelesen habe, Dinge wie HTTP/1.1
(wie der Name vermuten lässt).
Meine Frage ist also: Was genau SERVER_PROTOCOL
enthält unter welchen Umständen/in welchem Kontext? Und was könnte der Grund dafür sein, dass die offizielle Dokumentationswebsite von Apache die einzige ist, die ich während mehrstündiger Recherche gefunden habe und die HTTPS
als möglichen Wert auflistet SERVER_PROTOCOL
?
Antwort1
Herzlichen Glückwunsch, Sie haben einen Fehler in der Apache-Dokumentation gefunden. Erwägen Sie, ihn zu melden.
Was Ihr unmittelbares Problem betrifft, scheinen Sie zu suchen nach REQUEST_SCHEME
:welches enthalten wird
Der Schemateil der URI der Anfrage
zum Beispiel http
oder https
.