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 :

Ré-écriture d'url avec suppression de la query_string


Sujet :

Apache

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 47
    Points
    47
    Par défaut Ré-écriture d'url avec suppression de la query_string
    Bonjour,

    Mon client m'a fournit un fichier avec les lignes suivantes :

    Code apache2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RedirectPermanent pages/rechercher-un-bien.php <a href="http://www.son-site.com/acheter" target="_blank">http://www.son-site.com/acheter</a>
     
    RewriteCond %{QUERY_STRING} ^current=(.*)$ 
    RewriteRule ^pages/rechercher-un-bien.php$ <a href="http://www.son-site.com/acheter?" target="_blank">http://www.son-site.com/acheter?</a> [L,R=301]

    Comme l'instruction RedirectPermanent ne semble pas fonctionner sur son serveur j'ai remplacé ces instructions par des RewriteRule ... [L,R=301]http://httpd.apache.org/docs/2.4/mod...irectpermanent

    Code apache2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteRule pages/rechercher-un-bien.php <a href="http://www.son-site.com/acheter" target="_blank">http://www.son-site.com/acheter</a> [L,R=301]
     
    RewriteCond %{QUERY_STRING} ^current=(.*)$ 
    RewriteRule ^pages/rechercher-un-bien.php$ <a href="http://www.son-site.com/acheter?" target="_blank">http://www.son-site.com/acheter?</a> [L,R=301]

    Ce qui est sensé être équivalent.
    (mais peut être que je me trompe.)

    Avec ces règles misent en place, l’ancienne url :
    http://www.son-site.com/pages/recher...fiche=12187749
    Est redirigé vers
    http://www.son-site.com/acheter?fiche=12187749
    (301 Moved Permanently)

    Le client voudrait que les paramètres « ?fiche=12187749 » disparaissent lors de la redirection.

    Hors le comportement observé est exactement celui décrit dans la règle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule pages/rechercher-un-bien.php http://www.son-site.com/acheter [L,R=301]
    A cause du flag [L] cette règle empêche le traitement des règles suivantes.
    http://httpd.apache.org/docs/trunk/r...gs.html#flag_l
    Donc tous les requêtes vers pages/rechercher-un-bien.php* sont redirigé vers http://www.son-site.com/acheter avec transmission de la query_string. (Comportement par défauts d’apache.)

    Une solution serait d’ajouter le flag [QSD] http://httpd.apache.org/docs/trunk/r....html#flag_qsd
    Mais apache refuse de redémarrer.

    J'ai également testé en inversant l'ordre des deux règles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteCond %{QUERY_STRING} ^current=(.*)$ 
    RewriteRule ^pages/rechercher-un-bien.php$ http://www.son-site.com/acheter? [L,R=301]
     
    RedirectPermanent pages/rechercher-un-bien.php http://www.son-site.com/acheter
    Ou en enlevant le flag [L] de la première règle.

    Code apache2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteRule pages/rechercher-un-bien.php <a href="http://www.son-site.com/acheter" target="_blank">http://www.son-site.com/acheter</a> [R=301]
     
    RewriteCond %{QUERY_STRING} ^current=(.*)$ 
    RewriteRule ^pages/rechercher-un-bien.php$ <a href="http://www.son-site.com/acheter?" target="_blank">http://www.son-site.com/acheter?</a> [L,R=301]



    Mais j'arrive juste à en conclure que ça :
    Code apache2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} ^current=(.*)$ 
    RewriteRule ^pages/rechercher-un-bien.php$ <a href="http://www.son-site.com/acheter?" target="_blank">http://www.son-site.com/acheter?</a> [L,R=301]
    ça ne marche pas..

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2012
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Janvier 2012
    Messages : 97
    Points : 47
    Points
    47
    Par défaut Bonjour et bon Lundi :)
    Un autre test qui ne marche pas, proposé par l'hébergeur :
    (avec un '/' à la fin de la nouvelle url)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule pages/rechercher-un-bien.php http://www.son-site.com/acheter/ [L,R=301]
    La redirection n'est pas effectué et je me mange la page 404.

Discussions similaires

  1. Ré-écriture URL avec un reverse proxy
    Par kalibo1 dans le forum Apache
    Réponses: 1
    Dernier message: 04/05/2012, 21h59
  2. [HTML] URLs avec variable et validation W3C
    Par pirouette_07 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 11/10/2005, 11h27
  3. Passage de login mot de passe dans l'URL avec IE6 sp2
    Par SPA dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 07/10/2005, 08h47
  4. Update, décalage avec suppression
    Par moulette85 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/05/2005, 13h39
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20

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