stoff Posted October 13, 2018 Share Posted October 13, 2018 (edited) Bonjour, Suite à l'activation du mode SSL sur une boutique prestashop (1.6), je découvre une boucle de redirection bizarre. Mon domaine déclaré est www.mondomaine.fr (non ssl et ssl) // forcer le ssl sur tout le site ok. Le certificat SSL est bien installé, https://www.mondomaine.fr fonctionne parfaitement, Cependant, si je tente d'accéder à https://mondomaine.fr , Prestashop me redirige tout d'abord vers http://www.mondomaine.fr avant de me rediriger vers https://www.mondomaine.fr. J'ai tout d'abord pensé à un problème côté serveur (htaccess/vhost etc...), problème écarté en faisant un echo "Hello world"; exit(); en début de fichier index.php (je ne suis alors plus redirigé -> c'est donc le Core qui gère la redirection). Après une dizaine de vérifications, j'ai l'impression que TOUTES les boutiques presta dont l'url est du type www.domaine.fr sont par défaut impactées par ce problème (1.6, 1.7 ...). (je vous invite à tester ici : https://httpstatus.io/ en saisissant https://votredomaine.fr ,) si l'url de votre boutique est sous le schéma www.votredomaine.fr) J'ai testé une modif en dur des fichiers class/tools.php (fonctions redirect redirectlink) en vain... Quelqu'un aurait-il une piste/solution svp ? Merci ! Edited October 13, 2018 by stoff (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted October 13, 2018 Share Posted October 13, 2018 Non, ne sont impactées que les boutiques/serveurs mal configurés Le ssl doit être activé sur toutes les pages et .htaccess regénéré 1 1 Link to comment Share on other sites More sharing options...
stoff Posted October 13, 2018 Author Share Posted October 13, 2018 (edited) Merci pour ta réponse, j'édit mon premier message qui n'est visiblement pas assez clair, l'url que tu as testé n'est pas sous le même schéma (www.monnomdedomaine.fr) Edited October 13, 2018 by stoff (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 13, 2018 Share Posted October 13, 2018 Bonjour, je confirme ce soucis. Si le domaine utilise le sous domaine www alors si on l'appel sans il est d'abord dirigé vers le bon domaine sans ssl puis en ssl. 1 Link to comment Share on other sites More sharing options...
doekia Posted October 13, 2018 Share Posted October 13, 2018 Oui ce "défaut" que vous mentionnez est ... normal si vous avez configuré vos redirection https sur le domaine demandé (cas courant des mises en place automatisé des hébergement) Mais il vous suffit de configurer CORRECTEMENT votre redirection pour régler le problème (qui n'en est pas vraiment 1 sauf à avoir un parc d'url googlisé antérieures): <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule (.*) https://www.votre-domaine.tld/$1 [L,QSA,R=301] RewriteCond %{HTTP_HOST} !^www\. RewriteRule (.*) https://www.%{HTTP_HOST}$1 [L,QSA,R=301] </IfModule> 1 Link to comment Share on other sites More sharing options...
stoff Posted October 13, 2018 Author Share Posted October 13, 2018 Merci pour ton retour, Bien entendu en faisant une modif avant que le Core Prestashop se lance il est possible de patcher le comportement (cf ton code de rewrite, ou ceux pour valider le hstspreload), mais c'est pas du tout ce que je demande/cherche. Si vous aviez pris le temps de lire CORRECTEMENT mon premier message, et d'éventuellement tester, vous auriez compris que je n'ai effectué "aucune configuration spéciale au niveau du serveur" et que pour moi le problème se trouve au niveau de Presta qui effectue lui même les redir : Sans patch htaccess et avec un echo "Hello world"; exit(); au début du fichier index.php : https://monnomdedomaine.fr --> 200https://www.monnomdedomaine.fr --> 200 http://monnomdedomaine.fr --> 200http://www.monnomdedomaine.fr --> 200 Sans patch htaccess et avec le fichier de base index.php : https://monnomdedomaine.fr --> 301 -> http://www.monnomdedomaine.fr --> 301 --> https://www.monnomdedomaine.frhttps://www.monnomdedomaine.fr --> 200 http://monnomdedomaine.fr --> 301 -> http://www.monnomdedomaine.fr --> 301 --> https://www.monnomdedomaine.frhttp://www.monnomdedomaine.fr --> 301 --> https://www.monnomdedomaine.fr Avec patch htaccess et avec le fichier de base index.php : https://monnomdedomaine.fr --> 301 -> https://www.monnomdedomaine.frhttps://www.monnomdedomaine.fr --> 200 http://monnomdedomaine.fr --> 301 -> https://monnomdedomaine.fr --> 301 --> https://www.monnomdedomaine.frhttp://www.monnomdedomaine.fr --> 301 --> https://www.monnomdedomaine.fr Link to comment Share on other sites More sharing options...
doekia Posted October 13, 2018 Share Posted October 13, 2018 Désolé, c'est vous qui ne comprenez pas. Et je ne vois pas ce que je pourrais tester, tu ne donne pas ton url Vous devez procéder au redirections en dehors de prestashop. la solution n'est pas le saint graal de toute l'informatique. Il implémente de fonctionnalité quand il peut (je ne parle pas de temps au sens développement, mais de temps au sens moment d'exécution) afin de résoudre des problèmes de configuration. Le dispatcher sachant que vous être en https et ce pour sécuriser le plus rapidement possible renvoi vers le canal https Plus tard dans l'exécution prestashop voit que le domaine canonical est www, il redirige dessus Plus tard encore il verra que tel produit a telle url canonique et renverra sur celle-ci Au final si vous entrez http://mondomain.fr/1-quelque-chose.html vous serez redirigé 3x si vous laissez Prestashop agir seul: http => https mondomaine.fr => www.mondomaine.fr www.mondomaine.fr/1-quelquechose.html => www.mondomaine.fr/1-la-vrai-url-simplifie-du-produit-id1.html De plus en fonction de votre hébergement il existe tout un éventail de technique mise en amont de Prestashop Par exemple ici vous avez une redirection vers le non http anormale - elle est sûrement la résultante d'une redirection hoster (OVH?) Le .htaccess ou le vhost sont les endroits privilégiés - hors section géré par prestashop - pour rediriger correctement votre shop. Enfin vous donnez une url fictive. Si vous mettiez une url exacte peut-être pourrions nous voir tous les problèmes liés et mieux vous aider PS: Attention aux directives HSTS, et bien s'assurer de ne pas conflicter avec des directives forcées par l'hébergeur (OVH à nouveau?) Link to comment Share on other sites More sharing options...
doekia Posted October 14, 2018 Share Posted October 14, 2018 @stoff Finalement tu as raison il y a un bug. Dans classes/shop/Shop. Shop::initialize() $redirect_header = ($redirect_type == 1 ? 'Found' : 'Moved Permanently'); header('HTTP/1.0 '.$redirect_code.' '.$redirect_header); header('Location: http://'.$url); à remplacer par $redirect_header = ($redirect_type == 1 ? 'Found' : 'Moved Permanently'); header('HTTP/1.0 '.$redirect_code.' '.$redirect_header); header('Location: '.(Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')?'https':'http').'://'.$url); 2 Link to comment Share on other sites More sharing options...
Eolia Posted October 14, 2018 Share Posted October 14, 2018 Il y a 2 lignes à changer: 361 et 429 (même code) Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 14, 2018 Share Posted October 14, 2018 Merci, j'ai effectué les corrections et le résultat est là. Link to comment Share on other sites More sharing options...
stoff Posted October 14, 2018 Author Share Posted October 14, 2018 Merci beaucoup @doekia. (pour répondre à ton précédent message, mes boutiques impactées sont sur différents dédiés avec différentes config : apache/nginx, nginx, apache) Link to comment Share on other sites More sharing options...
doekia Posted October 14, 2018 Share Posted October 14, 2018 Est-ce tes dédié qui assument les zone DNS? et la terminaison https? Vraiment de vraies url permettraient de vite savoir si quelque chose d'autre peut impacter Link to comment Share on other sites More sharing options...
stoff Posted October 15, 2018 Author Share Posted October 15, 2018 Oui pour les deux, ta correction solutionne bien le problème au niveau du Core, tout roule, merci ! Link to comment Share on other sites More sharing options...
Mediacom87 Posted October 15, 2018 Share Posted October 15, 2018 Le soucis est rapporté à PrestaShop, nous allons pouvoir constater le discours pour un truc aussi évident et simple. https://github.com/PrestaShop/PrestaShop/pull/11004 Link to comment Share on other sites More sharing options...
ttoine Posted October 15, 2018 Share Posted October 15, 2018 Cool, merci beaucoup pour la PR Les devs l'ont déjà vue :-) Link to comment Share on other sites More sharing options...
joseantgv Posted October 15, 2018 Share Posted October 15, 2018 (edited) Comme il ne s'agit ni d'une question critique ni d'une question de sécurité, elle ne sera certainement pas mise à jour dans la PS 1.6. Edited October 15, 2018 by joseantgv (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now