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 :

Comment créer une règle de ré-écriture pour la Racine ?


Sujet :

Apache

  1. #1
    Nouveau membre du Club Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut Comment créer une règle de ré-écriture pour la Racine ?
    Bonjourà tous,

    Je suis actuellement en train d'optimiser le référencement d'un site multilingue, et j'utilise la réécriture d'url pour la gestion des langues. Tout fonctionne à merveille... sauf sur ma page d'accueil. Je n'arrive pas à faire de règle pour la racine du site.


    Pour info la structure est simple, je voudrais que la traduction se fasse de cette façon :
    http://www.domaine.com/ => Anglais
    http://www.domaine.com/fr/ => Français
    http://www.domaine.com/de/ => Allemand
    ...

    La réécriture fonctionne parfaitement pour les différentes langues grâce à cette règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(de|fr)/\.html$ index.php?lang=$1 [L]
    Par contre comment je fait pour la racine ? Je n'arrive pas à trouver le bonne règle


    Merci d'avance si vous pouvez m'aider

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Bizarre, ta règle, je trouve : /de/.html, c'est étrange comme URL. Tu es sûr que ça marche comme tu veux ?

    "Pour la racine", ça veut dire quoi ? Uniquement quand on fait http://tonsite.com/ ou aussi http://tonsite.com/une/page.html ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Nouveau membre du Club Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Salut Mac, merci pour ta réponse.

    Autant pour moi, la règle est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(de|fr)/\$ index.php?lang=$1 [L]
    Pour répondre à ta question "racine" signifie que je cherche juste la règle pour la page d'accueil : http://tonsite.com/

    J'ai déjà fait toutes mes réécritures pour les dossiers / pages de l'arborescence et ça fonctionne bien, j'ai juste le soucis pour la page d'accueil.

    En gros si je fais monsite.com/de/ j'obtiens bien la version de l'accueil en Allemand (idem en français avec monsite.com/fr/ ), par contre pour avoir la version en anglais par défaut sur monsite.com/ je n'y arrive pas. J'ai essayé des tas de trucs dont cette règle sans succès:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/\$ index.php?lang=en [L]
    Je suppose que ce n'est pas très compliqué pourtant.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    L'astuce c'est de ne rien mettre entre le ^ et le $ :
    Sinon, retire le \ devant le $ dans tes règles, je pense que ça pose problème.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Nouveau membre du Club Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Cette règle me met bien l'anglais par défaut, le problème c'est qu'elle doit écraser l'autre car ça me change aussi /de/ & /fr/ en Anglais...

    Voilà ce que j'ai à ce moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^$ index.php?lang=en [L]
    RewriteRule ^(de|fr)/$ index.php?lang=$1 [L]
    Il n'y a pas un paramètre par défaut pour définir la racine sur un htaccess ?

    Sinon je pourrais faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule LaFonctionRacine/$ index.php?lang=en [L]
    RewriteRule LaFonctionRacine/(de|fr)/$ index.php?lang=$1 [L]
    Tu vois ce que je veux dire?

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ca reviendra au même. Le problème n'est pas d'être à la racine ou pas, le problème est ailleurs. Ajoute tout en haut de ton .htaccess, pour voir.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #7
    Nouveau membre du Club Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Points : 38
    Points
    38
    Par défaut
    Salut Mac,

    merci pour ta réponse, j'ai essayé plein de trucs depuis la dernière fois et au final si je ne mets que cette règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ^$ index.php?lang=en [L]
    ^(de|fr)/$ index.php?lang=$1 [L]
    tout fonctionne. Il doit donc y avoir un conflit mais je ne vois pas ou... :/


    edit : laisse tomber le boulet, je viens de m'apercevoir que tout en bas de mon pavé de redirections il y avait des règles obsolètes (niveau des paramètre de langues) non-commentées, c'était ce qui générait le conflit...

    Encore merci pour tout !

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

Discussions similaires

  1. Comment créer une règle dans Sonar
    Par catmary dans le forum Intégration Continue
    Réponses: 7
    Dernier message: 09/07/2014, 09h34
  2. Comment créer une règle avec taquets en JAVA?
    Par mina86 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 14/02/2011, 14h54
  3. Réponses: 3
    Dernier message: 19/07/2009, 06h46
  4. Comment créer une application base de données pour le Web ?
    Par samlepiratepaddy dans le forum Langage
    Réponses: 4
    Dernier message: 24/03/2007, 14h10
  5. Réponses: 7
    Dernier message: 29/07/2005, 09h51

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