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 GET (et "+")


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut URL Rewriting avec GET (et "+")
    Salut

    Voila, j'ai un formulaire transmettant des mots clés en GET à une page de moteur de recherche.
    La variable transmise est donc susceptible de recueillir des espaces, transformés grace à url_encode en "+". donc "un chien dans la rue" donne "un+chien+dans+la+rue"

    Le probleme est que j'aimerai rewriter cette page de recherche, en transformant :

    index.php?include=search&motscle=un+chien+dans+la+rue&page=1

    en

    search-un+chien+dans+la+rue-1
    Mais je n'arrive pas à faire accepter le signe "+", sauf si j'utilise l'opérateur "." (qui apparemment peut pomper beaucoup de ressources)

    voici mon rewrite

    RewriteRule ^search-(.+)$ index.php?include=search&motscle=$1 [L]
    RewriteRule ^search-(.+)-([0-9]+)$ index.php?include=search&motscle=$1&page=$2 [L]

    Et la je me retrouve confronté à un autre probleme :

    Il prend le lien "search-un+chien+dans+la+rue-2" et compte "un+chien+dans+la+rue-2" en entier, en paramètre pour "motscle", donc sans tenir compte du "-2" qui devrait compter pour le paramètre "page". Ce qui fait que lorsque je clique sur le lien, je me retrouve avec "..2-2" puis "..2-2-2" puis "..2-2-2-2" et sans fin..

    Je me dis qu'en autorisant les "+" il suffit d'interdire les "-" mais je n'arrive pas à trouver l'expression qui va bien.

    ([+a-zA-Z0-9][^-]+)

    Quelle solution à ce probleme ? Est ce que je dois revoir les positions des variables de mon url rewriting ?
    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    Bon eh bien j'ai trouvé dans un premier temps comment tout simplement accepter le signe "+".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^search-([a-z0-9\+]+)-([0-9]+)$ index.php?s=search&words=$1&p=$2
    Mais j'ai toujours le probleme du lien "search-motscle-2"



    "motscle-2" est reconnu comme la recherche et pas "2" en tant que numero de page.

  3. #3
    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
    Par défaut
    Inverse l'ordre des 2 règles car en effet, la seconde est "incluse" dans la première.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    J'ai procedé de cette manière, et ça a l'air de marcher


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteRule ^search-([\w\+]+)$ index.php?include=search&motscle=$1
    RewriteRule ^search-([\w\+]+)-([0-9]+)$ index.php?include=search&motscle=$1&page=$2
    Est ce qu'il vaut mieux que j'inverse quand même les deux ?

  5. #5
    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
    Par défaut
    Pas nécessairement si ça marche, mais dans l'absolu il faut éviter que les règles se "chevauchent".

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 124
    Par défaut
    Hmm, tu pourrais me donner un exemple de règle qui se chevauchent ? je serai pas contre, que je me fasse une meilleure idée

Discussions similaires

  1. Url rewriting avec GET
    Par gtenthorey dans le forum Apache
    Réponses: 1
    Dernier message: 02/12/2008, 12h08
  2. url rewriting avec tomcat en standalone
    Par julien20vt dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 18/01/2008, 13h59
  3. URL Rewriting avec lettres
    Par Alexandrebox dans le forum Apache
    Réponses: 7
    Dernier message: 22/11/2007, 13h22
  4. 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
  5. [URLRewriting] URL Rewrite avec Language
    Par Prosis dans le forum Apache
    Réponses: 15
    Dernier message: 28/02/2007, 19h28

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