web-dev-qa-db-fra.com

Supprimer le code de langue de l'URL

J'ai un léger problème avec un site multilingue. J'utilise FaLang pour gérer les traductions de 4 langues ( anglais, espagnol, français et italien ) sur une installation 3.3.6 Joomla avec Anglais défini comme valeur par défaut langue du site.

J'ai activé le "Supprimer le code de langue de l'URL" dans le filtre de langue. Lors de la visualisation du site en anglais mon URL ressemble à ceci

www.example.com/company/contact.html

Et le sélecteur de langue montre les autres langues comme suit:

www.example.com/es/company/contact.html
www.example.com/fr/company/contact.html
www.example.com/it/company/contact.html

Mon problème est que si je change la langue pour l’une des trois autres, mon URL anglaise ressemble à ceci dans le sélecteur de langue:

www.example.com/en/company/contact.html

En cliquant sur le lien on est redirigé avec un 303 de .../en/... à .../....

Pour autant que je sache, c'est l'intention de Joomla, mais j'aimerais supprimer le /en/ à partir de mes URL en anglais, de sorte que lorsque mon site Web est affiché dans l’une des langues, mes URL en anglais se présentent ainsi:

www.example.com/company/contact.html

J'utilise le sélecteur de langue de FaLang, mais je fais également l'expérience de ce "problème" avec le système de sélecteur de langue/système de traduction de Joomla.

Je n'utilise aucun composant SEF et n'en ai trouvé aucun qui puisse résoudre ce problème. Je crois que je dois changer quelque chose dans le routage principal de Joomla mais, hélas, je ne sais pas où et quoi.

.htaccess selon demande

RewriteRule ^en/(.*)$ http://www.example.com/$1 [R=301,L]
5
Epodax

Autant que je sache, ce que vous voulez n'est pas possible. Le/en/est nécessaire pour que Joomla sache que vous voulez changer de langue. Parce qu'avec www.example.com/company/contact.html, Joomla regardera dans votre cookie de langue et se redirigera vers la langue actuellement active. Donc, pour changer de langue, vous devez explicitement dire à Joomla que vous souhaitez passer à l'anglais. Une fois que l'anglais est actif, les liens doivent être sans/en /.

3
Bakual

À l'heure actuelle, ce que vous demandez n'est pas possible. Je trouve ce comportement très gênant et j'enverrai une demande d'extraction aux développeurs de Joomla pour changer cela.

En attendant, vous pouvez utiliser la fonctionnalité de redirection pour rediriger vos pages. Par exemple, supposons que vous ayez une page httx: //votresite.com/fr/products.html, mais que vous souhaitiez utiliser l'URL httx: //votresite.com/products.html, vous devez ensuite créer une redirection. URL dans l'extension de redirection de /products.html vers /en/products.html. La mauvaise chose est que vous devez le faire pour chaque URL que vous souhaitez supprimer le suffixe de la langue ..

Je pense aussi que cela devrait être calculé automatiquement par Joomla.

0
spacebiker