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 :

Ne pas récupérer uniquement la query string sur une redirection


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Ne pas récupérer uniquement la query string sur une redirection
    Bonsoir,

    J'ai un champs de recherche que je souhaite faire fonctionner en autocompletion, mais qui doit aussi fonctionner pour les personnes n'ayant pas JS.

    Il est en GET avec ce type d'URL une fois envoyé:

    http://monsite/recherche?q=ma+requete

    L'idée c'est d'avoir l'URL sous cette forme (url que je construis directement dans mon autocompletion):

    http://monsite/recherche/ma+requete/

    celle-ci pointe alors sur : index.php?page=search&q=ma+requete

    J'utilise donc une double redirection pour arriver à un seul et même format d'URL que celà soit pour l'autocompletion ou directement via le form "classique".

    j'ai donc le rewrite suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    rewritecond %{query_string} ^q=(.*)$
    RewriteRule ^recherche(.*)(/)?$ http://monsite/recherche/%1/ [R=301]
     
    RewriteRule ^recherche/([a-zA-Z0-9\-]+)(/)?$   index.php?page=search&q=$1 [L]
    et le résultat :
    http://monsite/recherche/ma+requete/?q=ma+requete

    Le problème est donc qu'il me retourne systématiquement ?q=ma+requete à la fin alors que je n'en veux pas !

    Comment faire ?

  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
    Il faut ajouter un ? à la fin de l'URL de redirection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^recherche(.*)(/)?$ http://monsite/recherche/%1/? [R=301]

    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Super ! Merci _Mac_ !
    Effectivement j'avais vu dans la doc le ? mais sans réellement comprendre sa fonction. Il me semblait que cela stoppait le rewrite.

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

Discussions similaires

  1. Comment récupérer les coordonnées d’un clique sur une image ?
    Par da_sys dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 12h34
  2. Réponses: 3
    Dernier message: 26/04/2006, 21h45
  3. Réponses: 8
    Dernier message: 27/03/2006, 17h12
  4. Réponses: 4
    Dernier message: 24/11/2005, 09h34
  5. Query-string sur l'objet history
    Par AlLutun dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/11/2004, 09h20

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