S4nG0 Posted June 1, 2017 Share Posted June 1, 2017 Bonjour à tous, Je suis actuellement en train de développer un Prestashop pour un client de ma boîte. Il s'agit d'un multiboutique sous PS1.6, décliné en français (une boutique en /fr/, par défaut) et en anglais (une boutique en /en/). Mon but est de rediriger automatiquement les clients non-français vers le site /en/ (en repérant la langue du navigateur). J'ai bien coché l'option sur Prestashop dans "Localisation > Localisation > Définir la langue depuis la langue du navigateur", ainsi que "Définir le pays par défaut depuis la langue du navigateur", mais ça ne fonctionne malheureusement pas... Comme la boutique /fr/ est définie comme celle par défaut, l'utilisateur est redirigé vers cette boutique quoi qu'il arrive. Avez-vous des solutions ? Link to comment Share on other sites More sharing options...
doekia Posted June 1, 2017 Share Posted June 1, 2017 si tu es déjà sur une page du front-office, tu as un cookie qui contient déjà un choix de langue. pour tester tu doit impérativement effacer tes cookies et cliquer sur l'url sans la langue Link to comment Share on other sites More sharing options...
S4nG0 Posted June 1, 2017 Author Share Posted June 1, 2017 si tu es déjà sur une page du front-office, tu as un cookie qui contient déjà un choix de langue. pour tester tu doit impérativement effacer tes cookies et cliquer sur l'url sans la langue En effet, j'avais déjà testé de supprimer les cookies (depuis l'inspecteur Chrome et en utilisant un plugin Language Switcher). À partir de là, je me connecte sur l'adresse en .com (sans /fr/ ou /en/) mais la redirection sur le /fr/ se fait quand même. J'aimerai pouvoir éviter un maximum de scripter une redirection moi-même si Prestashop est capable nativement... Link to comment Share on other sites More sharing options...
doekia Posted June 1, 2017 Share Posted June 1, 2017 on est d'accord que tu as testé avec une version anglaise du navigateur qui annonce que tu parles anglais? et bien sur sans cookies si oui alors ça doit marcher car de base cela fonctionne une url? Link to comment Share on other sites More sharing options...
S4nG0 Posted June 2, 2017 Author Share Posted June 2, 2017 Merci pour ta réponse doekia. J'ai bien vidé les cookies, relancé Chrome, passé le user agent en anglais, sans succès. Des clients de la boutique habitant hors de France ont également fait la remarque. Voici une url vers la boutique en question : https://teatap.com Link to comment Share on other sites More sharing options...
doekia Posted June 2, 2017 Share Posted June 2, 2017 Il y a une redirection qui intervient et renvoi sur /fr/ avant prestashop Connecting to teatap.com (teatap.com)|46.105.57.169|:443... connected. HTTP request sent, awaiting response... HTTP/1.1 302 Found Date: Fri, 02 Jun 2017 08:55:01 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Server: Apache X-Powered-By: PHP/5.6.30 Vary: Host,Accept-Encoding Location: http://teatap.com/fr/ Set-Cookie: SERVERID585=2020232|WTEn6|WTEn6; path=/ X-IPLB-Instance: 10295 Location: http://teatap.com/fr/ [following] Quelque chose que tu aurait ajouté dans le .htaccess? Link to comment Share on other sites More sharing options...
S4nG0 Posted June 2, 2017 Author Share Posted June 2, 2017 @doekia Je laisse Prestashop générer le .htaccess tout seul, je ne me souviens pas y avoir touché. Voici le contenu du fichier : # ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again # .htaccess automaticaly generated by PrestaShop e-commerce open-source solution # http://www.prestashop.com - http://www.prestashop.com/forums <IfModule mod_rewrite.c> <IfModule mod_env.c> SetEnv HTTP_MOD_REWRITE On </IfModule> RewriteEngine on #Domain: teatap.com RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api$ api/ [L] RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^fr$ /fr/ [L,R] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^fr/(.*) /$1 [L] # Images RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L] # AlphaImageLoader for IE and fancybox RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] #Domain: teatap.com RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule . - [E=REWRITEBASE:/] RewriteRule ^api$ api/ [L] RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^en$ /en/ [L,R] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^en/(.*) /$1 [L] # Images RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L] # AlphaImageLoader for IE and fancybox RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L] # Dispatcher RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^.*$ - [NC,L] RewriteCond %{HTTP_HOST} ^teatap.com$ RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L] </IfModule> AddType application/vnd.ms-fontobject .eot AddType font/ttf .ttf AddType font/otf .otf AddType application/x-font-woff .woff <IfModule mod_headers.c> <FilesMatch "\.(ttf|ttc|otf|eot|woff|svg)$"> Header add Access-Control-Allow-Origin "*" </FilesMatch> </IfModule> <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/gif "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType text/css "access plus 1 week" ExpiresByType text/javascript "access plus 1 week" ExpiresByType application/javascript "access plus 1 week" ExpiresByType application/x-javascript "access plus 1 week" ExpiresByType image/x-icon "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 year" ExpiresByType image/vnd.microsoft.icon "access plus 1 year" ExpiresByType application/font-woff "access plus 1 year" ExpiresByType application/x-font-woff "access plus 1 year" ExpiresByType application/vnd.ms-fontobject "access plus 1 year" ExpiresByType font/opentype "access plus 1 year" ExpiresByType font/ttf "access plus 1 year" ExpiresByType font/otf "access plus 1 year" ExpiresByType application/x-font-ttf "access plus 1 year" ExpiresByType application/x-font-otf "access plus 1 year" </IfModule> <IfModule mod_headers.c> Header unset Etag </IfModule> FileETag none <IfModule mod_deflate.c> <IfModule mod_filter.c> AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript font/ttf application/x-font-ttf font/otf application/x-font-otf font/opentype </IfModule> </IfModule> #If rewrite mod isn't enabled ErrorDocument 404 /index.php?controller=404 # ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again Link to comment Share on other sites More sharing options...
doekia Posted June 2, 2017 Share Posted June 2, 2017 J'avais zappé que tu était en multishop. En multishop, c'est toujours la boutique par défaut qui arrive. Pourquoi es-tu en multishop? Link to comment Share on other sites More sharing options...
S4nG0 Posted June 2, 2017 Author Share Posted June 2, 2017 J'avais zappé que tu était en multishop. En multishop, c'est toujours la boutique par défaut qui arrive. Pourquoi es-tu en multishop? Ah... C'est bien ce que je pensais. Du coup, faire une redirection devient assez tordu. As-tu une idée de comment je pourrai procéder ? Ça nous semblait logique de base de fonctionner en multiboutique pour deux langues, mais maintenant ça nous pose plutôt soucis, puisqu'en plus d'avoir des soucis de redirection, notre base client n'est pas partagée entre les deux stores, et notre client souhaite que ça le soit. C'est notre premier Prestashop, du coup on savait qu'il y aurait des soucis, mais maintenant qu'on est parti sur du multiboutique, ça me semble très compliqué de revenir en arrière, surtout que l'activité du site a déjà commencé. Link to comment Share on other sites More sharing options...
doekia Posted June 2, 2017 Share Posted June 2, 2017 Il y a un peu de travail pour ramener le tout en mono-boutique mais c'est tout à fait faisable. En gros, ramener tous les clients sous le même id_shop Supprimer le suffixe /fr/ du shop 1, activer la langue en ... se qui remet la langue dans les urls (donc pas de changement SEO) J'ai bien dit en gros hein. Ne commence pas à cliquer comme un geotrouvetout, fait plein de test avant. Eventuellement PM moi si tu veux qu'éventuellement je te chiffre ça 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