Comment rediriger de HTTP vers HTTPS en JavaScript ?

Réponses rédigées par Antoine
Dernière mise à jour : 2022-03-15 12:56:16
Thèmes : javascript - https - securite
Question

Comment faire pour rediriger de HTTP vers HTTPS, avec JavaScript, lorsqu'un nom de domaine ne se charge pas en HTTPS ?

Réponse

Pour rediriger de HTTP vers HTTPS en JavaScript, vous pouvez utiliser les méthodes location.replace() et split(), ainsi que l'interface location.

Dans le script ci-après on teste tout d'abord le protocole pour vérifier s'il est différent de https :

if (location.protocol !== 'https:') 

Puis si c'est le cas on le remplace dans l'url de la page en l'extrayant via la méthode split().

La méthode split() divise une chaine de caractère en plusieurs sous chaines selon un délimiteur (ici //), puis les place dans un tableau.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Comment rediriger de HTTP vers HTTPS en JavaScript ?</title>
  </head>
  <body>
    <script>
      if (location.protocol !== 'https:') 
      {
         location.replace('https://' + location.href.split('//')[1]);
      }
    </script>
  </body>
</html>

Remarque : Vous pouvez aussi utiliser un fichier .htaccess pour effectuer une redirection globale de HTTP vers HTTPS.