Messages: 2

Enregistré le: 19 Déc 2014

Message le Ven Déc 19, 2014 17:44

Bonjour,
Je pense que ce sujet a déjà été couvert plusieurs fois mais je n'arrive pas à trouver une config satisfaisante. C'est pas faute d'avoir cherché.

J'utilise actuellement ces règles sous Apache 2.2 afin de rediriger correctement mes utilisateurs en fonction de la langue de leur navigateur.

Code: Tout sélectionner
RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^/$ http://www.monsite.com/en/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^/$ http://www.monsite.com/fr/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^es [NC]
RewriteRule ^/$ http://www.monsite.com/es/ [L,R=301]

Ces règles fonctionnent bien mais j'aimerais les modifier afin de pouvoir réécrire :

Code: Tout sélectionner
www.mysite.com/pagex.php

en

Code: Tout sélectionner
www.mysite.com/LANGUAGE-X/pagex.php

Bien entendu, LANGUAGE-X représente le sous répertoire (fr, en, es) correspondant à la langue du navigateur.

Avec ma config, j'obtiens une erreur 404.

Apple fait ca. Quand vous entrez

Code: Tout sélectionner
www.apple.com/iphone

vous êtes redirigé vers

Code: Tout sélectionner
wwww.apple.com/fr/iphone (si votre navigateur est en francais)

Des idées ?

Merci d'avance.
Haut
2 Réponses
Messages: 623

Enregistré le: 21 Juil 2014

Message le Ven Déc 19, 2014 17:50

quelque chose du genre :

RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^/([a-z]+\.php)$ http://www.monsite.com/fr/$1 [L,R=301]
Haut
Messages: 2

Enregistré le: 19 Déc 2014

Message le Sam Déc 20, 2014 3:51

Merci beaucoup pour ta réponse rapide et efficace.

Pour info, j'ai juste modifié quelques petites choses, en partant de ta réponse.

Code: Tout sélectionner
RewriteCond %{HTTP:Accept-Language} ^fr [NC]
RewriteRule ^/([0-9a-zA-Z]+\..*)$ http://www.monsite.com/fr/$1 [L,R=301]

Encore merci.
Haut