Sda33 Posted February 14, 2015 Share Posted February 14, 2015 Bonjour, Je suis sur Prestashop 1.6.0.11, et en mode maintenance pour le moment, je prépare la sortie de mon site web. J'ai configuré deux langues : FR et EN et donc je peux naviguer en monsite.com/en et monsite.com/fr. J'ai vraiment prévu ces deux versions, mais je souhaite sortir la version FR plus tôt. La version EN devrait être disponible dans quelques mois, le temps que je finalise les traductions, c'est un long travail. Si je désactive la langue EN, le problème est que la navigation sur mon site se fait en monsite.com. Si je rajoute /fr, je tombe sur des 404. Or je tiens à naviguer dès la sortie sur /fr, pour ne pas perdre mon référencement le jour où j'ouvrirai la version anglaise. Je réactive donc la langue EN pour retrouver mon /fr. Je peux désactiver le sélecteur de langue pour limiter le risque qu'un internaute navigue sur EN, mais il pourra toujours le taper à la main, et tomber sur un site qui ne ressemble à rien (trads non faites, pages cms vides, ...). La solution pourrait être de garder les deux langues actives, et de rediriger de manière permanente les /en/xxx sur /fr/xxx. Pouvez-vous me dire si j'ai juste jusqu'à maintenant ? Et si oui, comment faire cette redirection permanente ? Merci de votre aide. Link to comment Share on other sites More sharing options...
thomasharko Posted February 14, 2015 Share Posted February 14, 2015 Bonsoir, J'imagine que vous souhaiter continuer à développer la version anglaise en même temps que la version française est en ligne. Donc oui le plus simple me semble être de garder les 2 langues activées, par contre ça ne me parait pas terrible pour le référencement, risque de duplicate content et redirections ne plaisent pas trop aux moteurs de recherche. Si c'est la soution que vous appliquez, les redirections se font via le .htaccess qui est à la racine de l'installation. Sinon une autre solution serait de créer un multiboutique avec comme url /fr pour la boutique en français et une boutique /en associé à l'anglais. Et donc ne déclaré que le sitemap de /fr pour l'instant. Plus compliqué à mettre en place mais meilleure solution pour le réferencement. Bonne soirée Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 Bonsoir, et merci pour votre réponse, qui me permet du coup de préciser la mienne maintenant que je comprends les risques du Duplicate content. Mon urgence est l'ouverture de mon site en Français, et donc en monsite.com/fr. Je peux désactiver l'anglais pour le moment, je ne compte pas travailler dessus en prod, je ferai mes trads en dev et je les importerai en prod le moment venu. Comment paramétrer ma boutique pour qu'avec une seule langue active, on navigue sur le /fr ? Si cela se passe dans le .htaccess, sauriez-vous m'indiquer comment je dois l'écrire ? Je ne suis pas à l'aise avec... Merci d'avance de votre aide. Link to comment Share on other sites More sharing options...
thomasharko Posted February 15, 2015 Share Posted February 15, 2015 Du coup il suffit de modifier l'url de la boutique à monsite.com/fr dans Préférences -> SEO et URL Bonne ouverture de boutique Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 Je pense que la solution passe plutôt par un override des classes qui construisent le /lang en multilangue, et décident d'ignorer le /lang quand on n'en a qu'une d'active. J'ai plusieurs pistes dans Link, Language, Tools, mais rien de ce que je teste pour le moment ne fonctionne. J'ai même modifié la fonction getLangLink pour forcer brutalement fr/ et régénérer le rewriting, sans succès. Mais c'était un coup comme ça... Je suis plus à l'aise avec les classes qu'avec le .htaccess, donc je prends volontiers toute aide m'aidant à comprendre la fabrication des URL sur Prestashop (1.6.0.11 dans mon cas). Merci à tous ! Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 Harko toutes mes excuses nos messages se sont croisés. J'ai essayé de faire cela, mais j'ai eu une erreur sur tout mon site, j'ai l'impression qu'il cherche un dossier physique... Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 Ahhh ! J'avais ajouté /fr dans le chemin de base, votre astuce fonctionne à merveille, merci 1000 fois ! Génial ! Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 Je me suis emballée, cela ne fonctionne pas, j'ai une erreur "cette page Web présente une boucle de redirection" (je pense qu'il boucle sur la 404)... Toutes mes excuses pour ces messages en cascade. Link to comment Share on other sites More sharing options...
thomasharko Posted February 15, 2015 Share Posted February 15, 2015 Oui l'URL /fr étant celle du site il faut ajouter cette redire crions sur le serveur afin qu'elle soit reconnue Vous y êtes presque Link to comment Share on other sites More sharing options...
thomasharko Posted February 15, 2015 Share Posted February 15, 2015 Et modifier URL simplifier et les remettre pour régénérer le htaccess Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 Merci, je suis chez OVH, je ne vois pas comment faire cette redirection ? J'ai voulu créer une nouvelle redirection de monsite.com vers monsite.com/fr mais je n'ai pas la possibilité de valider ce paramétrage. Si vous avez une idée rapide, je prends avec plaisir, sinon vous m'avez déjà bien aidée et je continuerai à chercher dans ce sens. Encore merci. Link to comment Share on other sites More sharing options...
thomasharko Posted February 15, 2015 Share Posted February 15, 2015 Oui j'étais en train d'écrire Il faut ajouter au htaccess RedirectPermanent http://monsite.com http://monsite.com/fr Pour que la redirection soit faite plus compliqué de penser à tout sans faire Bonne soiree Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 (edited) Je suis un boulet... 1) desactivation de la langue anglaise 2) modification de l'url de mon site en monsite.com/fr 3) régénération rewriting (off puis on) 4) ajout de la ligne dans le .htaccess : RedirectPermanent http://monsite.com/ http://monsite.com/fr Résultat : même erreur, avec mon url qui devient : suis http://monsite.com/frfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfr Si vous avez une idée... Edited February 15, 2015 by Sda33 (see edit history) Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 (edited) (même problème sans le / après monsite.com : RedirectPermanent http://monsite.com http://monsite.com/fr ) Edited February 15, 2015 by Sda33 (see edit history) Link to comment Share on other sites More sharing options...
thomasharko Posted February 15, 2015 Share Posted February 15, 2015 Pour moi c'est bon, quand je saisis ton url.eu, j'arrive bien sur ton url.eu/fr En maintenance avec des erreurs 503 mais la redirection est bonne En vidant le cache du navigateur Link to comment Share on other sites More sharing options...
Sda33 Posted February 15, 2015 Author Share Posted February 15, 2015 J'ai refait des tests entre temps, je ne sais pas si tu es arrivé sur la bonne version. En fait : avec la redirection, et sans déclarer mon site comme monsite.com/fr sur l'interface SEO/URL, ça fonctionne. Mais l'un des problèmes est la navigation catégories/produits, il a ses liens sans le /fr et me donne des 404. Je n'ai pas creusé + et je ne t'ennuierai pas davantage pour ce soir. Merci pour tous ces conseils et pour ta patience, je pense que j'ai besoin de faire une pause et de retenter très méthodiquement demain matin. Link to comment Share on other sites More sharing options...
thomasharko Posted February 15, 2015 Share Posted February 15, 2015 Les liens sans le /fr doivent provenir de liens sur le site qui n'ont pas les /fr à la fin Surement des liens ajoutés manuellement Une piste de plus a suivre Bonne soirée Link to comment Share on other sites More sharing options...
Sda33 Posted February 16, 2015 Author Share Posted February 16, 2015 Re... Donc j'ai vidé tout mon cache et fraîchement reposée j'ai recommencé la manip. Je confirme que la redirection fonctionne bien, mon .com et redirigé grâce au .htaccess vers .com/fr. Cependant mon site n'affiche que des 404, il ne reconnait aucun contenu. J'ai mis le redirect permanent en première ligne du .htaccess, je ne sais pas si c'est une bonne idée. Dans tous les cas je commence à me résoudre à rester en .com pour le moment, sans redirection /fr. A moins que je ne trouve pourquoi en natif Prestashop s'évertue à ne donner une extension de langue qu'en mode multilangue, il doit bien y avoir un moyen de lui demander de considérer un /fr même quand c'est la seule langue active... Bref encore merci de votre aide hier, et une bonne journée à vous. Si je trouve une solution, je vous en informerai immédiatement ici. Link to comment Share on other sites More sharing options...
thomasharko Posted February 16, 2015 Share Posted February 16, 2015 Je viens de penser, essayez en vous déconnectant du back-office ou sur un autre navigateur. J'avais constaté sur un test de ce type de problème. Quoiqu'il arrive si vous utilisez le .com uniquement pour l'instant et activez ensuite les langues, les redirections seront générées par Prestashop et vous n'aurez pas de soucis particuliers. Bonne journée Link to comment Share on other sites More sharing options...
moza24 Posted January 19, 2016 Share Posted January 19, 2016 Bonjour, je suis dans la meme galère que Sda33 je lance bientôt ma boutique qui sera dans un premier temps en francais donc monsite.com/fr et par la suite en anglais monsite.com/en J'ai désactivé la langue anglais dans le backoffice donc l'url du site donne sur monsite.com mais je souhaiterais le rediriger vers monsite.com/fr, j'ai ajouté un redirection dans le htaccess RedirectPermanent / https://www.monsite.com/fr Le problème c'est la redirection se fait avec une boucle https://www.monsite.com/frfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfr Je souhaiterais savoir qu'elle serait la solution, le problème est présent en local et sur mon serveur 1and1 Merci Link to comment Share on other sites More sharing options...
Johann Posted January 19, 2016 Share Posted January 19, 2016 Si ta boutique n'est pas encore indexée, le plus simple est d'activer dès le début le /fr, ça t'évitera des redirections (toujours aller au plus simple) Donc je te conseille : - soit d'activer l'anglais, de masquer le bloc langue et de mettre un disallow sur /en dans le robots.txt - soit dans Préferences et URLs, d'ajouter un /fr/ au début de toutes tes routes. Quand tu activeras l'anglais, tu les retireras. Le /fr que tu avais mis sera remplacé par celui ajouté par la langue Link to comment Share on other sites More sharing options...
moza24 Posted January 19, 2016 Share Posted January 19, 2016 Merci pour ton aide donc la deuxième solution ne fonctionne pas car, toutes les pages ne sont pas rediriger avec le /fr (page d'accueil, promotion, nouveauté...) Pour la première solution, si un internaute tape monsite.com/en il tombera sur la version anglaise du site ? et si je comprends bien le disallow me permettra de ne pas indexer l'anglais ? Link to comment Share on other sites More sharing options...
moza24 Posted January 19, 2016 Share Posted January 19, 2016 (edited) Donc j'ai mis en place la premiere solution, tous fonctionne correctement, si un internaute tape monsite.com/en il sera redirigé vers le /fr grace à cette redirection Options +FollowSymLinks RewriteRule ^en.*$ https://www.monsite.com/fr/ [R=301,L] Je voudrais maintenant savoir si cette redirection ne va pas créer de duplicate au niveau du referencement ou d'autres problèmes ? Edited January 19, 2016 by moza24 (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted January 19, 2016 Share Posted January 19, 2016 Bonsoir, Si jamais, il existe un module permettant de choisir une langue pour laquelle nous ne voulons pas d'iso_code dans l'URL. Par exemple, on choisis le Français et le /fr ne sera jamais rajouté à l'URL, que cela soit en multi-langue ou non. Cela évite, à l'activation d'une nouvelle langue, ce rajout dans l'URL non souhaité. Link to comment Share on other sites More sharing options...
Johann Posted January 19, 2016 Share Posted January 19, 2016 Donc j'ai mis en place la premiere solution, tous fonctionne correctement, si un internaute tape monsite.com/en il sera redirigé vers le /fr grace à cette redirection Options +FollowSymLinks RewriteRule ^en.*$ https://www.monsite.com/fr/ [R=301,L] Je voudrais maintenant savoir si cette redirection ne va pas créer de duplicate au niveau du referencement ou d'autres problèmes ? Oui, le but du disallow est de ne pas indexer l'anglais. Tu le vireras évidemment quand tu activeras l'anglais (et que tu auras traduit aussi tes fiches) Et pas de DC, justement grace à la redirection Link to comment Share on other sites More sharing options...
moza24 Posted January 19, 2016 Share Posted January 19, 2016 Ok merci pour ton aide, j'ai une autre question surement bête mais bon je la pose: Si je regenère le fichier robot.txt, est-ce que les modifications que j'aurais apporté manuellement (disallow)seront supprimé ou pas ? Et pour la redirection est elle correct car je les trouvé sur google ? Link to comment Share on other sites More sharing options...
jf Viguier Posted November 23, 2016 Share Posted November 23, 2016 (edited) Bonjour, Voici une solution uniquement via l'.htaccess pour rediriger le /en vers le /fr tout en redirigeant également la home page : RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{QUERY_STRING} ^$ RewriteRule ^/$ /fr/ Redirect permanent /en/ /fr/ JF Edited November 23, 2016 by jf Viguier (see edit history) Link to comment Share on other sites More sharing options...
Captain FLAM Posted June 21, 2019 Share Posted June 21, 2019 (edited) Je suis conscient que c'est un vieux post, mais si ça peut servir à d'autres ... La seule solution correcte est de créer un override de la classe "Language.php" (fourni ci-dessous) Mettez ce fichier dans le dossier : /override/classes Et n'oubliez pas de de supprimer le fichier : /cache/class_index.php Aussi simple que ça ! ► Language.php Edited June 21, 2019 by Captain FLAM (see edit history) 1 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