變數 SERVER_PROTOCOL 到底包含什麼(Apache 2.4)?

變數 SERVER_PROTOCOL 到底包含什麼(Apache 2.4)?

我有一個由 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(正如名稱所期望的那樣)。

SERVER_PROTOCOL所以我的問題是:在什麼情況下/在什麼背景下到底包含什麼? Apache 的官方文件網站是我在幾個小時的研究中發現的唯一一個將 列為HTTPS可能值的網站,這可能是什麼原因SERVER_PROTOCOL

答案1

恭喜,您在 Apache 文件中發現了錯誤。考慮報告一下。

至於您眼前的問題,您似乎正在尋找REQUEST_SCHEME其中將包含

請求 URI 的方案部分

例如,httphttps.

相關內容