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

Langage PHP Discussion :

R�-�criture d'URL : expression qui marche dans une fonction, mais pas dans le htacces


Sujet :

Langage PHP

  1. #1
    Membre exp�riment�
    Avatar de titoumimi
    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    3 707
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 707
    Par d�faut R�-�criture d'URL : expression qui marche dans une fonction, mais pas dans le htacces
    Bonjour � tous.

    �a fait 3 jours que je m'arrache les cheveux l�-dessus, je me r�soud � faire appel � vous

    Je souhaite transformer une URL re�ue de ce genre :

    Seek-by-reference?val_selected=123&limite=0&d'autresparams dont je je moque

    en quelque chose comme �a :

    index.php?id_p=17&val_selected=123&limite=0

    id_p ne varie pas, val_selected peut �tre alphanum�rique ou nul, et limite num�rique uniquement.

    j'ai donc test� �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    $chaine = 'Seek-by-reference?val_selected=123&limite=0&Submit_main.x=9&Submit_main.y=6';
    $motif = "Seek-by-reference\?val_selected=([a-zA-Z0-9]*)&limite=([0-9]+)";
    $nouvelle = "index.php?id_p=17&val_selected=\\1&limite=\\2";
     
    $chaine = ereg_replace($motif, $nouvelle, $chaine);
    �a marche tr�s bien, �a me retourne l'url d�sir�e. Cependant, quand je met cette ligne dans mon htaccess :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    RewriteRule ^Seek-by-reference?val_selected=([a-zA-Z0-9]*)&limite=([0-9]+).* index.php?id_p=17&val_selected=$1&limite=$2 [L]
    je me retrouve avec une belle erreur 404 de la mort qui tue... Est-ce que vous auriez une id�e SVP ? Je commence un peu � d�sesp�rer

    d'avance
    Globalement inoffensif
    Merci de respecter les r�gles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  2. #2
    Membre exp�riment�
    Avatar de titoumimi
    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    3 707
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 707
    Par d�faut
    j'ai essay� d'�chapper le ? dans ma directive, mais toujours le m�me soucis.

    J'ai essay� sinon cette directive :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    RewriteRule ^Seek-by-reference(.*) index.php?id_p=17$1 [L]
    �a marche un peu mieux dans le sens ou il m'affiche ma page, mais il ne prend aucun param�tre en compte � l'exception de mon id_p...

    �a doit �tre du aux deux ? successifs qu'il croise (?id_p=17?val_selected=...) mais je ne voit pas du tout comment le g�rer
    Globalement inoffensif
    Merci de respecter les r�gles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre confirm�
    Inscrit en
    D�cembre 2005
    Messages
    225
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2005
    Messages : 225
    Par d�faut
    Fais attention aux guillemets et aux apostrophes , tu peux soit remplacer ce code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $motif = "Seek-by-reference\?val_selected=([a-zA-Z0-9]*)&limite=([0-9]+)";
    par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $motif = "Seek-by-reference\\?val_selected=([a-zA-Z0-9]*)&limite=([0-9]+)";
    Ou utiliser des apostrophes au lieu des guillemets , � toi de choisir .

  4. #4
    Membre confirm�
    Inscrit en
    D�cembre 2005
    Messages
    225
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2005
    Messages : 225
    Par d�faut
    Et dans ton fichier .htaccess tu dois avoir :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    RewriteRule ^Seek-by-reference\?(.*) index.php?id_p=17&$1 [L]

  5. #5
    Membre exp�riment�
    Avatar de titoumimi
    Profil pro
    Inscrit en
    D�cembre 2003
    Messages
    3 707
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 707
    Par d�faut
    merci pour ta r�ponse

    je viens de tester ta solution, et je retourne sur l'erreur 404
    Globalement inoffensif
    Merci de respecter les r�gles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre confirm�
    Inscrit en
    D�cembre 2005
    Messages
    225
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2005
    Messages : 225
    Par d�faut
    D�sol� mais mes regex marchent tr�s bien , je les ai test�es avec ce testeur avec succ�s : http://www.lumadis.be/regex/test_regex.php .
    Si tu essaie d'acc�der � Seek-by-reference sans param�tre , alors utilise cette regex :
    Cette d�rni�re est compatible avec ou sans param�tre