11480 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
J'ai écrit le code suivant et j'aimerai savoir s'il fait sa fonction sur TOUS les sites.

<head>
   <script>
      if(!(String(window.location).includes("https"))){
         window.location="https://"+String(window.location).split("//")[1]
      }
   </script>
</head>


Merci !
Administrateur
Que cherches-tu à faire exactement avec ça ? Rediriger toutes les pages du site vers HTTPS ? Je pense que ce serait plus efficace et propre avec un .htaccess (si ton hébergeur est sur Apache)

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*)  https://%{HTTP_HOST}%{REQUEST_URI}  [R,L]
Modérateur
Bonjour,

Sans aucun doute, s'il y avait une médaille pour le roi de la combine qu'il ne faut surtout pas faire, tu la gagnerais facilement. Smiley cligne

Après, bon, ces questions sont intéressantes parce qu'il faut chercher un peu pour t'expliquer que tu fais n'importe quoi. Smiley lol

Ton code marche, mais j'aurais mis window.location.toString() au lieu de String(window.location). Peut-être même que j'aurais employé window.location.href. Ceci étant, String(window.location) semble marcher sans que j'aie réussi à déterminer si c'était normal ou bien si c'était un coup de bol.

Après, pour tester ça :

- soit on emploie un serveur qui n'est pas configurer pour faire du https pour la page en question, alors l'utilisateur devrait voir apparaitre un joli "Ce site ne peut pas fournir de connexion sécurisée" alors qu'il n'a pas demander de page sécurisée,

- soit on emploie un serveur qui est configuré pour faire du https pour la page en question, auquel cas, sauf si l'administrateur du site a fait sa config avec des moufles, le serveur aura modifié le http en https de lui-même avant même que ce code soit exécuté, et ce code ne fera rien.

Ce code devrait donc au mieux ne servir à rien, et au pire énerver l'utilisateur.

Ceci étant, peut-être que dans certains cas, cette combine pourrait servir, mais ce serait vraiment un cas tordu selon moi, et qu'il faudrait éviter.

EDIT: sinon, oui, il y a la possibilité du .htaccess proposé par Rodolph, mais ce n'est me semble-t-il utile que si le serveur n'est pas déjà configuré pour faire la redirection.

Amicalement,
Modifié par parsimonhi (18 Nov 2020 - 12:27)
Merci @persimonhi !

Moi, j'utilise 000webhost gratuit ce qui me fait une adresse XXXX.000webhostapp.com !
De base, c'est http://XXXX.000webhostapp.com mais on peut quand même faire https://XXXX.000webhostapp.com où le site est vérifié par DigitCert Inc.
Il ne modifie pas le http en https de lui-même, c'est pour ça que je cherchais à faire une redirection. Et je ne peux pas configurer le serveur non plus.

Mon code et celui de Rodolphe redirigent, avant même que la page soit chargée, vers https. L’utilisateur ne devrait donc pas être énervé.

Du coup je vais utiliser le code de Rodolphe :

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*)    https://%{HTTP_HOST}%{REQUEST_URI}    [R,L]



Merci à vous deux !
Meilleure solution
Modérateur
Bonjour,

Mea culpa, je n'avais pas envisagé le cas du serveur mutualisé et qui te laisse le choix.

Amicalement,