Vous souhaitez passer votre site PrestaShop en HTTPS mais vous êtes sous une version 1.5 qui ne permet d’activer le HTTPS que pour l’accès à l’espace membre et au tunnel de commande ? En plus du fait que cela ne soit pas très utile de laisser le reste du site en HTTP, vous risquez surtout de faire fuir vos clients à la prochaine mise à jour de Google Chrome. Pas de panique, ce tutoriel vous explique comment éviter cela en passant tout votre site PrestaShop en HTTPS !

Pour que la solution ci-dessous fonctionne sans problème, vous devez préalablement activer le SSL via votre back-office et avoir bien évidemment installé un certificat SSL sur votre hébergement.

Modifiez le fichier Htaccess

Tout d’abord, nous allons créer une règle de redirection dans le fichier HTACCESS situé à la racine de votre site. Pour cela, ouvrez votre fichier HTACCESS via un éditeur de texte comme le bloc-note et ajoutez le code ci-dessous tout en haut du fichier.

Prenez-soin de ne pas placer ce code entre les lignes # ~~start~~ et # ~~end~~ au risque de perdre votre édition lors de la prochaine régénération du fichier Htaccess par PrestaShop.

Ces quelques lignes de code permettent d’indiquer à votre site que toutes les urls de votre site doivent désormais être redirigées vers https://

Éditez la classe Tools.php

Ouvrez ensuite le fichier classes/Tools.php et cherchez la fonction getShopDomain().

Éditez-la de façon à avoir le code ci-dessous :

Éditez le fichier product.tpl

Pour terminer, ouvrez le fichier themes/VOTRE_THEME/product.tpl et recherchez l’appel de la description de votre produit. Éditez alors cette ligne comme ceci :

Dans le cas où vous auriez ajouté des images dans vos descriptions via un lien http://, ce code permettra de remplacer automatiquement tous les “http” par “https”.

En cas d’erreur ERR_TOO_MANY_REDIRECTS

Malgré le fait que vous ayez suivi scrupuleusement les indications ci-dessus, il est possible que certaines pages de votre site ne s’affichent pas. Ainsi, si vous observez l’erreur ERR_TOO_MANY_REDIRECTS dans votre navigateur lorsque vous tentez d’accéder à une page de produit par exemple, cela signifie qu’il y a une boucle de redirection qui pose problème.

Il faut dans ce cas éditer la fonction redirectLink() de la classe Tools.php (la même classe que celle de la fonction getShopDomain() que vous avez précédemment éditée.

Recherchez alors cette fois la classe afin d’avoir un code similaire à celui ci-dessous :