O que exatamente a variável SERVER_PROTOCOL realmente contém (Apache 2.4)?

O que exatamente a variável SERVER_PROTOCOL realmente contém (Apache 2.4)?

Tenho um site servido pelo Apache 2.4 que deve servir todo o conteúdo via HTTPS. Já tenho redirecionamentos apropriados que funcionam corretamente, mas não detectam nenhum caso patológico. Queria melhorar essa situação e, ao fazer o meu trabalho de casa, deparei-me com o seguinte exemplo emesse documento:

<If "%{SERVER_PROTOCOL} != 'HTTPS'">
    Redirect "/admin/" "https://www.example.com/admin/"
</If>

Modifiquei um pouco isso para refletir minha situação:

<If "%{SERVER_PROTOCOL} != 'HTTPS'">
    Redirect "/" "https://www.example.com/"
</If>

Agora, ao tentar visualizar qualquer URL do meu site, o navegador entra em um loop infinito de redirecionamento.

Estou suspeitando que o exemplo esteja realmente errado. SERVER_PROTOCOLnão parece conter o valor HTTPSem nenhuma circunstância. Em vez disso, de acordo com o que li em outros artigos, contém coisas como HTTP/1.1(como o nome indica).

Portanto, minha pergunta é: o que exatamente SERVER_PROTOCOLcontém em que circunstâncias/em que contexto? E qual poderia ser a razão pela qual o site de documentação oficial do Apache é o único que encontrei durante várias horas de pesquisa que lista HTTPScomo um possível valor de SERVER_PROTOCOL?

Responder1

Parabéns, você encontrou um erro na documentação do Apache. Considere denunciar isso.

Quanto ao seu problema imediato, você parece estar procurando REQUEST_SCHEME,que conterá

A parte do esquema do URI da solicitação

por exemplo, httpou https.

informação relacionada