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

2

Eu tenho um site servido pelo Apache 2.4, que deve servir todo o conteúdo via HTTPS. Eu já tenho redirecionamentos apropriados que funcionam corretamente, mas não captam nenhum caso patológico. Eu queria melhorar essa situação e, ao fazer meu dever de casa, encontrei o seguinte exemplo em este 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 está errado. SERVER_PROTOCOL parece não conter o valor HTTPS sob 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 permitiria).

Então, minha pergunta é: O que exatamente o SERVER_PROTOCOL contém sob quais 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 possível valor de SERVER_PROTOCOL ?

    
por Binarus 22.01.2017 / 19:19

1 resposta

3

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

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

The scheme part of the request's URI

por exemplo, http ou https .

    
por 22.01.2017 / 19:33