私はApache 2.4で提供しているウェブサイトを持っていますが、すべてのコンテンツをHTTPSで配信する必要があります。適切なリダイレクトはすでに正しく機能していますが、異常なケースは検出されません。この状況を改善したいと思い、宿題をしているときに、次の例を見つけました。このドキュメント:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/admin/" "https://www.example.com/admin/"
</If>
私は自分の状況を反映するためにこれを少し変更しました:
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/" "https://www.example.com/"
</If>
現在、自分のサイトから URL を表示しようとすると、ブラウザが無限リダイレクト ループに陥ります。
この例は実際には間違っているのではないかと疑っています。いかなる状況でもSERVER_PROTOCOL
値が含まれていないようですHTTPS
。 代わりに、他の記事で読んだところによると、次のようなものが含まれていますHTTP/1.1
(名前から予想されるとおり)。
そこで私の質問は、どのような状況/コンテキストで、正確には contain が何を意味するのかということです。また、数時間にわたる調査での可能な値としてSERVER_PROTOCOL
リストされているのが Apache の公式ドキュメント Web サイトだけである理由は何なのでしょうか。HTTPS
SERVER_PROTOCOL
答え1
おめでとうございます。Apache ドキュメントにエラーが見つかりました。報告することを検討してください。
あなたの当面の問題に関しては、あなたが探しているのはREQUEST_SCHEME
、含まれるもの
リクエストのURIのスキーム部分
たとえば、http
またはhttps
。