Redirection selon langue visiteur avec .htaccess
Résolu
AnhTuanFevre
Messages postés
219
Date d'inscription
Statut
Membre
Dernière intervention
-
AnhTuanFevre Messages postés 219 Date d'inscription Statut Membre Dernière intervention -
AnhTuanFevre Messages postés 219 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème de redirection de langue avec un fichier .htaccess situé à la racine.
Avec ce code :
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (fr) [NC]
RewriteRule .* http://www.androot.tk/fr/index [R,L]
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* http://www.androot.tk/en/index [R,L]
Il me met une boucle de redirection. Quel est le problème ?
Donc pour l'instant j'ai mis un fichier index.html à la racine avec des redirections Javascript selon la langue du visiteur qui marche bien mais ce n'est pas très "propre".
Merci de votre aide.
J'ai un problème de redirection de langue avec un fichier .htaccess situé à la racine.
Avec ce code :
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (fr) [NC]
RewriteRule .* http://www.androot.tk/fr/index [R,L]
RewriteCond %{HTTP:Accept-Language} (en) [NC]
RewriteRule .* http://www.androot.tk/en/index [R,L]
Il me met une boucle de redirection. Quel est le problème ?
Donc pour l'instant j'ai mis un fichier index.html à la racine avec des redirections Javascript selon la langue du visiteur qui marche bien mais ce n'est pas très "propre".
Merci de votre aide.
A voir également:
- Redirection selon langue visiteur avec .htaccess
- Changer langue windows 10 - Guide
- Telecharger langue arabe - Télécharger - Bureautique
- Changer langue facebook - Guide
- Voir son profil facebook comme un visiteur - Guide
- Telecharger la langue arabe sur le clavier - Télécharger - Divers Web & Internet
3 réponses
Salut
C'est normal
si es dirigé vers /fr/index et ton ordi est en français tu sera continuellement redirigé vers le page /fr/index etc etc --> boucle
tu dois faire une 2eme condition avec request_uri et !^/fr/index
cependant pense que si je suis francais aux etat unis avec un ordi anglais, je ne pourrais jamais acceder à la section en français avec une redirection forcée
si je suis déjà sur une page de ton site, dans ma langue (trouvée par google) autre que index je serais redirigé vers index donc fais plutot une redirection vers la page correspondante sans oublier la condition qui évite la boucle pour toute la section /fr
exemple un truc du genre
RewriteRule ^/en/(.*)$ /fr/$1
Mais le mieux reste de donner le choix :
si ton site a la meme arborescence dans chaque langue je ferais plutot des drapeaux avec lien généré en php vers la page de la langue correspondante (pour chaque page)
récuperer nom de la page en cours
https://www.developpez.net/forums/d325175/php/langage/obtenir-nom-page-courante/
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
C'est normal
si es dirigé vers /fr/index et ton ordi est en français tu sera continuellement redirigé vers le page /fr/index etc etc --> boucle
tu dois faire une 2eme condition avec request_uri et !^/fr/index
cependant pense que si je suis francais aux etat unis avec un ordi anglais, je ne pourrais jamais acceder à la section en français avec une redirection forcée
si je suis déjà sur une page de ton site, dans ma langue (trouvée par google) autre que index je serais redirigé vers index donc fais plutot une redirection vers la page correspondante sans oublier la condition qui évite la boucle pour toute la section /fr
exemple un truc du genre
RewriteRule ^/en/(.*)$ /fr/$1
Mais le mieux reste de donner le choix :
si ton site a la meme arborescence dans chaque langue je ferais plutot des drapeaux avec lien généré en php vers la page de la langue correspondante (pour chaque page)
récuperer nom de la page en cours
https://www.developpez.net/forums/d325175/php/langage/obtenir-nom-page-courante/
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
salut
essaie ca
ou si c'est la meme arborescence
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
essaie ca
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} (fr) [NC]
RewriteCond %{REQUEST_URI} !^/fr/index$ [NC]
RewriteRule ^(.*)$ http://www.androot.tk/fr/index [R,L]
##
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} !(fr) [NC]
RewriteCond %{REQUEST_URI} !^/en/index$ [NC]
RewriteRule ^(.*)$ http://www.androot.tk/en/index [R,L]
ou si c'est la meme arborescence
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/fr/.*$
RewriteCond %{HTTP:Accept-Language} ^.*fr.*$ [NC]
RewriteRule ^(.*)$ http://www.androot.tk/fr/$1 [L]
RewriteCond %{REQUEST_URI} !^/en/.*$
RewriteCond %{HTTP:Accept-Language} !^.*fr.*$ [NC]
RewriteRule ^(.*)$ http://www.androot.tk/en/$1 [L]
Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
Bonjour,
Merci pour vos échanges, questions réponses, cela m'a beaucoup aidée, et ça fonctionne bien maintenant !
Je me demandais s'il y avait possibilité de donner l'accès tout de même au site anglais ? Parce que du coup, meme si je clique sur le flag UK de mon site, la redirection me renvoie au .fr (normal...)
En fait je laisse les drapeaux au cas où... Mais là, on dirait juste que mes drapeaux ne fonctionnent pas :)
si vous avez une piste, merci beaucoup !
EDIT : en fait, même pour l'admin, il ne me laisse plus accéder à la version EN. Suis une quiche...
Merci pour vos échanges, questions réponses, cela m'a beaucoup aidée, et ça fonctionne bien maintenant !
Je me demandais s'il y avait possibilité de donner l'accès tout de même au site anglais ? Parce que du coup, meme si je clique sur le flag UK de mon site, la redirection me renvoie au .fr (normal...)
En fait je laisse les drapeaux au cas où... Mais là, on dirait juste que mes drapeaux ne fonctionnent pas :)
si vous avez une piste, merci beaucoup !
EDIT : en fait, même pour l'admin, il ne me laisse plus accéder à la version EN. Suis une quiche...
J'aimerai que le script redirige vers la partie française (situé dans un sous-dossier "fr") si le visiteur a un navigateur paramétré en français et si le visiteur n'a pas de navigateur paramétré en français, il sera redirigé par défaut sur la partie anglaise de mon site (situé dans un sous-dossier "en"). J'aimerai également que le script soit plus facilement modifiable pour que je puisse ajouter d'autres langues plus tard.
Tu m'aideras énormément.
Merci de ta compréhension.