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 :

Enlever proprement un paramètre à une url


Sujet :

Apache

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Points : 93
    Points
    93
    Par défaut Enlever proprement un paramètre à une url
    Ce que je veux faire : rediriger toutes les urls qui contiennent "param=val" en parmètre vers la même url sans le paramètre "param=val".

    Voici ma RewriteCond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteCond %{QUERY_STRING} ^(.*)([&]*)param=val([&]*)(.*)$
    Et ma RewriteRule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule ^(.*)$ http://monUrl.com$1?%1%2%4 [R,L]
    Cela fonctionne très bien à l'exception des urls du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://monUrl.com/?monparam=val
    qui sont redirigées vers :

    Note :Cela n'arrive que si j'ai "param=val" en première position dans mes paramètres.

    Comment puis - je contourner cela ?

  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
    A mon avis, faut passer par 2 règles : une qui gère le cas ou param est le premier paramètre de l'URL et une autre qui gère le cas ou param n'est pas le premier paramètre de l'URL. Je ne pense pas qu'on puisse trouver une seule expression régulière qui couvre les deux cas. Peut-être celle-ci mais je ne sais pas comment Apache gère les parenthèses imbriquées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^((.*&)*)param=val(.*)$
    RewriteRule ^(.*)$ http://monUrl.com$1?%1%3 [R,L]
    Au passage, tu as un problème également si param vaut "valxx".

Discussions similaires

  1. [URL rewriting] Enlever le début d'une URL
    Par itgus69 dans le forum Apache
    Réponses: 4
    Dernier message: 07/11/2013, 12h03
  2. Réponses: 13
    Dernier message: 29/07/2009, 20h25
  3. Réponses: 0
    Dernier message: 03/10/2007, 18h54
  4. Envoyer des paramètres à une url
    Par joKED dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 08/03/2007, 12h22
  5. Ajout paramètre à une URL
    Par Ver2ter dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 11/01/2007, 23h45

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