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: le flag R (redirect) force le query_string.


Sujet :

Apache

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut urlRewriting: le flag R (redirect) force le query_string.
    Bonjour à tous,

    j'ai un soucis avec mon urlrewriting,
    en effet, ma règle est bien appliquée, mais malgrés le fait que je n'ai pas ajouté le flag [QSA], la query string est tout de même ajoutée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^x=(.+)$
    RewriteRule ^.*$   redirect/x/%1 [L,R]
    En toute logique, cette règle devrait rediriger http://monsite.com/?x=osef vers http://monsite.com/redirect/x/osef
    Et pourtant, celui-ci est redirigé vers http://monsite.com/redirect/x/osef?x=osef

    du coup, forcement, la règle tourne en boucle et j'ai le droit à un beau:
    La page n'est pas redirigée correctement
    de la part de mon firefox

    Une idée de pourquoi ? je suis vraiment perdu sur ce coup
    Une règle générale d'Apache qui viens foutre la m...e ?

    Mon .htaccess complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Options +FollowSymLinks -Indexes
     
    RewriteEngine On
    RewriteBase /monsite/
     
    RewriteCond %{QUERY_STRING} ^x=(.+)$
    RewriteRule ^.*$   redirect/x/%1 [L,R]
    Merci beaucoup

    Edit: Je viens de voir qu'il y avait un flag [QSD] qui doit permettre de faire ça, malheureusement, disponible qu'a partir d'Apache 2.4, alors que je suis en Apache 2.2.14, sans possibilité de l'upgrader :/
    Y a t-il d'autre solution ?

  2. #2
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Bon ...

    Enfait, après avoir vu le flag QSD, j'ai pu trouvrt une piste pour reproduire ce comportement en apache 2.2

    Je met la solution pour que ça puisse servir a d'autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^x=(.+)$
    RewriteRule ^.*$   redirect/x/%1? [L,R]
    Et voila, il suffit enfait d'ajouter le "?" a la fin de la regle de redirection.
    Explication: apache ajoute par défaut la query_string lorsqu'il n'y en a pas déjà, il suffit donc d'en ajouter une vide.

    PS: le "?" en question ne s'affichera même pas au final dans l'URL redirigé.

    Désolé de pas avoir poussé la recherche assez loin avant de poster.

    Cdlt,

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

Discussions similaires

  1. [.htaccess] urlrewriting + router php = redirection
    Par Hive.42 dans le forum Apache
    Réponses: 4
    Dernier message: 01/07/2013, 17h34
  2. Aide urlrewriting / redirection avec paramètres
    Par loloing dans le forum Apache
    Réponses: 1
    Dernier message: 18/01/2009, 14h22
  3. Redirection avec rechargement forcé de la page
    Par hacksi dans le forum Général JavaScript
    Réponses: 30
    Dernier message: 24/06/2008, 15h00
  4. [PHP-JS] redirection apres telechargement forcé
    Par marielaure2805 dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2007, 19h28
  5. [URLRewriting] redirection .htaccess nouveau forum
    Par lelectronique.com dans le forum Apache
    Réponses: 2
    Dernier message: 04/03/2007, 13h37

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