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. Eu queria melhorar essa situação e, ao fazer minha lição de casa, encontrei o seguinte exemplo neste documento :
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/admin/" "https://www.example.com/admin/"
</If>
Eu 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 de redirecionamento infinito.
Estou suspeitando que o exemplo realmente está errado. SERVER_PROTOCOL
não parece conter o valor HTTPS
em nenhuma circunstância. Em vez disso, de acordo com o que li em outros artigos, ele contém coisas como HTTP/1.1
(como o nome poderia esperar).
Portanto, minha pergunta é: o que exatamente SERVER_PROTOCOL
conté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 HTTPS
como um valor possível de SERVER_PROTOCOL
?
Parabéns, você encontrou um erro na documentação do Apache. Considere denunciá-lo.
Quanto ao seu problema imediato, você parece estar procurando por
REQUEST_SCHEME
, que conterápor exemplo,
http
ouhttps
.