Forcer la redirection serveur HTTP vers HTTPS avec OpenLiteSpeed

On part du fait que votre certificat SSL ou TLS est déjà configuré et que l’accès HTTPS fonctionne. Ici on va faire en sorte que les visiteurs accédant à l’adresse http de votre site soit automatiquement redirigés vers la même adresse en https grâce à une redirection serveur.

Les directives pour forcer la redirection vers HTTPS

Ces lignes permettront de forcer la redirection, quelle que soit l’URL entrée.

RewriteCond %{SERVER_PORT} 80
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Explication des directives

RewriteCond %{SERVER_PORT} 80

  • RewriteCond est une instruction représentant une condition.
  • %{SERVER_PORT} est une variable contenant le port sur lequel le visiteur est arrivé sur votre site.
  • 80 est le résultat à tester

Cette condition peut se traduire par : Le port sur lequel arrive le visiteur est t-il égale à 80 ?

RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

  • RewriteRule est une instruction représentant une action qui doit être appliquée si la condition précédente est vraie.
  • .* est une expression rationnel indiquant la ou les parties de l’adresse à modifier. Ici .* signifie que tout doit être modifié.
  • %{HTTP_HOST} est une variable représentant le domaine sur lequel votre visiteur est arrivé
  • %{REQUEST_URI} est une variable représentant le chemin de l’url (sans le domaine) sur lequel le visiteur est arrivé
  • [R=301] est un « flag » (drapeau) qui définit le type de redirection. Ici 301 (permanente)
  • [L] est un « flag » (drapeau) indiquant que la règle de réécriture sera la dernière à exécuter.

Où placer mes directives de redirection

Avec OpenLiteSpeed, il n’est pas évident de trouver le bon endroit pour inscrire vos redirections. Pour une redirection HTTP globale ( c’est à dire sur l’ensemble du site web concerné ), il convient de placer les directives dans le chemin suivant :

"Virtual Hosts" -> "Rewrite" -> "Rewrite Rules"