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 :

Url rewriting avec redirection vers un répertoire & fichier


Sujet :

Apache

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 145
    Points : 59
    Points
    59
    Par défaut Url rewriting avec redirection vers un répertoire & fichier
    Bonjour à tous,

    Je galère sur une règle de rewriting. Voici ce que j'ai besoin de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.site.fr/board/CLIENT/repertoire1/repertoire2/fichier.php
    je voudrait cela en résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.site.fr/board/repertoire1/repertoire2/fichier.php?str_client=CLIENT
    Sachant que "/repertoire1/repertoire2/fichier.php" peut prendre toute forme d'url possible, cela est calé sur l'arborescence des fichiers du serveur.

    Voici ma règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^board/+([^/]+)/(.*)$ /board/$2?str_client=$1 [QSA,L]
    Ça détecte bien le CLIENT et l'envoi bien dans "str_client", mais par contre, il ne m'oriente pas vers la page de destination et reste bloqué sur la racine "board/". En fait il ignore tout ce qui avant le dernier slash.

    Exemples de résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.site.fr/board/CLIENT/repertoire1/repertoire2/fichier.php
    Donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.site.fr/board/fichier.php?str_client=CLIENT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.site.fr/board/CLIENT/repertoire1/repertoire2/
    Donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    www.site.fr/board/?str_client=CLIENT
    Si je test la variable le $2 (enla mettant dans un GET), j'ai pourtant le bon résultat ... c'est étrange

    Une petite aide ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    la règle a l'ai juste.

    Peut-être un / en trop ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^board/+([^/]+)/(.*)$ board/$2?str_client=$1 [QSA,L]
    A moins que tu aies d'autres règles qui entrent en conflit ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Hello,

    J'ai compris l'origine du problème mais j'ai pas de solution encore.
    En fait la règle s'applique sur chaque premier répertoire, elle tourne jusqu'à la fin de l’arborescence en enlevant systématiquement le premier répertoire :

    • www.site.fr/board/repertoire1/repertoire2/fichier.php?str_client=CLIENT
    • www.site.fr/board/repertoire2/fichier.php?str_client=repertoire1
    • www.site.fr/board/fichier.php?str_client=repertoire2



    Il faudrait lui dire ne passer qu'une fois par la règle ... mais je sais pas trop comment faire ..

  4. #4
    Invité
    Invité(e)
    Par défaut
    Tu as un + en trop, je pense :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^board/([^/]+)/(.*)$ board/$2?str_client=$1 [QSA,L]
    Et le [L] sert justement à ça :
    [L] (Last)
    Ce flag permet d'indiquer que si la règle match, on arrête ignore toutes les prochaines instructions.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Merci jreaux62,
    Malheureusement, il n'existe aucune autre règle dans le .htaccess. Celle-ci est la seule.
    L'url reroutée repasse à chaque fois dans le filtre du .htaccess et supprime le premier repertoire, je ne sais pas comment l'éviter

    Par exemple, je mets "http://www.site.fr/board/CLIENT/statistiques/repertoire/tableau-de-bord.php", j'ai l'erreur :
    Not Found
    The requested URL /board/tableau-de-bord.php was not found on this server.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 145
    Points : 59
    Points
    59
    Par défaut
    Bon tant-pis, en mettant CLIENT en premier du coup ça fonctionne, ça repasse pas en boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([^/]+)/board/(.*)$ /board/$2?str_client=$1 [QSA,L]
    C'est pas vraiment ce que je voulais mais ça fera l'affaire ; )

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

Discussions similaires

  1. URL rewriting sans www vers avec www
    Par Xt0ff dans le forum Apache
    Réponses: 4
    Dernier message: 20/01/2017, 15h22
  2. Réponses: 4
    Dernier message: 26/08/2013, 14h45
  3. [URL rewriting] Pb lien vers répertoire
    Par jerem_orga dans le forum Apache
    Réponses: 1
    Dernier message: 14/09/2010, 01h04
  4. Réponses: 7
    Dernier message: 27/03/2009, 17h05
  5. url rewriting : modifier le nom du répertoire
    Par hugo123 dans le forum Apache
    Réponses: 3
    Dernier message: 05/09/2006, 11h48

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