J'ai un site web géré par Apache 2.4 qui doit servir tout le contenu via HTTPS. J'ai déjà mis en place des redirections appropriées qui fonctionnent correctement, mais qui ne détectent aucun cas pathologique. Je voulais améliorer cette situation et, en faisant mes devoirs, je suis tombé sur l'exemple suivant dans le document ce document :
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/admin/" "https://www.example.com/admin/"
</If>
Je l'ai légèrement modifié pour refléter ma situation :
<If "%{SERVER_PROTOCOL} != 'HTTPS'">
Redirect "/" "https://www.example.com/"
</If>
Désormais, lorsqu'on essaie d'afficher une URL de mon site, le navigateur entre dans une boucle de redirection infinie.
Je soupçonne que l'exemple est en fait erroné. SERVER_PROTOCOL
ne semble pas contenir la valeur HTTPS
en toutes circonstances. Au contraire, d'après ce que j'ai lu dans d'autres articles, il contient des choses telles que HTTP/1.1
(comme son nom l'indique).
Donc ma question est : Qu'est-ce que exactement SERVER_PROTOCOL
contenir dans quelles circonstances / dans quel contexte ? Et quelle pourrait être la raison pour laquelle le site officiel de documentation d'Apache est le seul que j'ai trouvé au cours de plusieurs heures de recherche qui liste HTTPS
comme une valeur possible de SERVER_PROTOCOL
?
1 votes
SERVER_PROTOCOL pourrait être
HTTP/1.0
(anciens navigateurs),HTTP/1.1
(le plus courant de nos jours),HTTP/0.9
(lorsqu'ils sont omis par le client, par un logiciel assez ancien ou par des tests manuels) et probablementHTTP/2.0
à un moment donné. Cela ne vous aidera pas dans vos redirections pour https. De même, si vous n'avez pas l'intention d'utiliser le protocole http quelles que soient les circonstances, je rechercherais HSTS.0 votes
Eh bien, merci beaucoup et +1. Alors la documentation est effectivement erronée (je n'arrive toujours pas à croire que je suis le premier concerné par cette erreur). HSTS était sur mon agenda de toute façon ...