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] problème de passage de paramètre


Sujet :

Apache

  1. #1
    Invité
    Invité(e)
    Par défaut [URLRewriting] problème de passage de paramètre
    Bonjour

    la structure des URL des page de mon site est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index.php?class=MaClasse&func=MaFonction
    le mod_rewrite et une regex me permet d'appeler cette page avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse-MaFonction.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html$ index.php?class=$1&func=$2

    Jusque-là, pas de problème, ça marche.



    Maintenant j'aimerais pouvoir passer des paramètres supplémentaires à ma page.
    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Classe-fonction.html?param=val
    et obtenir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    index.php?class=MaClasse&func=MaFonction&param=var

    j'ai essayé ceci mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html(\??)([0-9a-zA-Z=&]*)$ /sites/teomi/index.php?class=Mv$1&func=$2&$4
    Dans la variable $_GET je n'ai que les deux premiers paramètres (class et func)


    A priori, l'expression est correcte, en exécutant le code PHP suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $pattern = "^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html(\??)([0-9a-zA-Z=&]*)$";
    $str = "MaClasse-MaFonction.html?param=val&param2=val2";
     
    ereg($pattern, $str, $res);
     
    echo '<pre>';
    print_r($res);
    echo '</pre>';
    ?>
    j'obtiens
    Array
    (
    [0] => MaClasse-MaFonction.html?param=val&param2=val2
    [1] => MaClasse
    [2] => MaFonction
    [3] => ?
    [4] => param=val&param2=val2
    )

    Est-ce que quelqu'un peut m'aider ?

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Salut !

    Il te suffit de rajouter l'option QSA a la fin de ta ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([0-9a-zA-Z]*)-([0-9a-zA-Z]*)\.html$ index.php?class=$1&func=$2 [QSA]
    Cette syntaxe permet de garder les variables non prevues dans ton regex (en gros apres ton html).

    Bonne chance !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ça marche, merci.

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

Discussions similaires

  1. Réponses: 19
    Dernier message: 09/06/2006, 10h03
  2. Problème de passage de paramètres à une procedure
    Par momo62 dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 22/12/2005, 15h22
  3. [template] problème de passage de paramètres
    Par vinny_the_true dans le forum C++
    Réponses: 2
    Dernier message: 14/12/2005, 01h15
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48

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