IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

[URLRewriting] URL Rewrite avec Language


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut [URLRewriting] URL Rewrite avec Language
    Ok j'ai un serveur qui contient trois sites avec un .htaccess à la racine pour que chaque nom de domaine soit redirigé à la bonne place.

    Maintenant, un de ces sites est bilingue et se trouve dans le répertoire /kwn/. La version anglaise est dans le répertoire /kwn/en/ et la version française est dans le répertoire /kwn/fr/.

    Une fois dans le répertoire /kwn/ j'aimerais vérifier la langue du browser et rediriger dans le répertoire en question sans toutefois que l'URL change. Autrement dit, le nom de domaine http://www.mondomaine.com/ est pointé dans le répertoire /kwn/. J'aimerais que, l'utilisateur soit rediriger vers http://www.mondomaine.com/fr/ ou http://www.mondomaine.com/en/ automatiquement dépendant la langue du browser tout en gardant l'URL http://www.mondomaine.com/.

    Est-ce possible?

    Merci

  2. #2
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Au départ, j'aurais dit « non ce n'est pas possible » car d'après la doc officielle, la valeur de HTTP_ACCEPT_LANGUAGE ne peut pas être utilisée dans les conditions de mod_rewrite.

    Mais en cherchant un peu, je suis tombé sur un exemple qui devrait fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RewriteEngine On
     
    RewriteBase /
     
    RewriteCond %{HTTP:Accept-Language} ^.*de.*$ [NC]
    RewriteRule ^(index.php)?$ http://www.domain.com/de/ [L,R=301]
     
    RewriteCond %{HTTP:Accept-Language} ^.*en.*$ [NC]
    RewriteRule ^(index.php)?$ http://www.domain.com/en/ [L,R=301]
     
    RewriteRule ^(index.php)?$ http://www.domain.com/fr/ [L,R=301]

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Super merci ca redirige super bien

    mais ca ne masque pas l'adresse

  4. #4
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Oui, ce n'était qu'un exemple, non adapté à tes besoins.

    Je ne connais pas très bien mod_rewrite, mais ça va peut-être te servir de piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RewriteEngine On
     
    RewriteBase /
     
    RewriteCond %{HTTP:Accept-Language} ^.*fr.*$ [NC]
    RewriteRule ^(*+)$ /fr/$1 [L]
     
    RewriteRule ^(*+)$ /en/$1 [L]
    Ca devrait mettre l'anglais par défaut pour tes visiteurs non francophones... si ça fonctionne bien sûr

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Par défaut
    Cette nouvelle version ne fonctionne pas lol mais la première oui.

    Mais le plus important pour moi est de cacher l'adresse car j'aurais pu rediriger en PHP aussi...

  6. #6
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Dans le premier code, l'adresse changeait car c'était une redirection externe (le 'R' dans [L, R=301] qui disait au navigateur d'aller sur une autre page. De plus, elle ne prenait en compte que la page index.php.

    Je n'ai pas mod_rewrite sous la main, donc il va falloir que tu cherches de ton côté ce qui ne va pas avec mon code. Les logs d'apache devraient t'aider.

    Edit : je viens de remarquer une sacrée bêtise dans mon code. Peut-être ça ira mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RewriteEngine On
    
    RewriteBase /
    
    RewriteCond %{HTTP:Accept-Language} ^.*fr.*$ [NC]
    RewriteRule ^(.*)$ /fr/$1 [L]
    
    RewriteRule ^(.*)$ /en/$1 [L]
    J'hésitais à mettre .* ou .+ et ça s'est terminé en *+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. URL Rewriting avec GET (et "+")
    Par supertino7 dans le forum Apache
    Réponses: 6
    Dernier message: 10/11/2008, 20h35
  2. [URL Rewriting] avec titres textuels
    Par dl_jarod dans le forum Apache
    Réponses: 13
    Dernier message: 23/01/2008, 14h13
  3. url rewriting avec tomcat en standalone
    Par julien20vt dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 18/01/2008, 13h59
  4. URL Rewriting avec lettres
    Par Alexandrebox dans le forum Apache
    Réponses: 7
    Dernier message: 22/11/2007, 13h22
  5. Si vous avez des questions sur Apache, HTAccess, URL rewriting avec Apache, etc
    Par Marc Lussac dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 28/08/2007, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo