Jump to content

Gestion des langues et redirection /en vers /fr


Recommended Posts

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

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

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

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

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

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...  :blink:

Edited by Sda33 (see edit history)
Link to comment
Share on other sites

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

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

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

  • 11 months later...

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
 
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

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

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

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 by moza24 (see edit history)
Link to comment
Share on other sites

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

 

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

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

  • 10 months later...
  • 2 years later...

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 by Captain FLAM (see edit history)
  • Thanks 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...