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] Règles partiellement fonctionnelles


Sujet :

Apache

  1. #1
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut [URL Rewriting] Règles partiellement fonctionnelles
    Bonjour à tous,
    je voudrais effectuer 2 réécritures d'url dans mon .htaccess, mais cela ne fonctionne pas.
    Voila la premiere, elle fonctionne. Elle transforme les url par ex : http://www.exemple.com/?toto en http://www.exemple.com/pref-perso.html?pseudo=toto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} (.+)
    RewriteRule ^$ ./pref-perso.html?pseudo=%1
    Voila la 2eme, elle fonctionne bien à la suite de la premiere, mais pas pour tout autres url. Ex, avec la 1ere regle appliqué : http://www.exemple.com/pref-perso.html?pseudo=toto, cela devient http://www.exemple.com/redirect.php?...so&pseudo=toto. Par contre, mes autres urls ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} (.+)
    RewriteRule ^pref-(.+)\.html$ ./redirect.php?file=$1&%1 [L]
    Je pense que c'est du au fait que la 1ere réécriture écrase tout, mais je ne vois pas comment résoudre ce problème.
    Dites moi si ce n'est pas clair.
    Merci d'avance

  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 quoi ressemblent tes autres URL qui ne fonctionnent plus ?

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Voici par exemple ce qui ne marche pas : http://www.exemple.com/pref-welcome.html qui devrait devenir : http://www.exemple.com/redirect.php?file=welcome

    Enfin même en supprimant la 1ère règle, la réécriture ne fonctionne pas...
    Merci d'avance.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    S'il n'y a pas de paramètres (query string), votre règle ne sera jamais appliquée. D'ailleurs pourquoi ne pas utiliser l'option QSA directement ?

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Honte à moi... c'était effectivement ca. La querystring étant nulle, la règle n'était pas appliqué. J'ai modifié comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} (.*)
    RewriteRule ^pref-(.+)\.html$ ./redirect.php?file=$1&%1 [L]
    Je n'ai pas bien compris comment le faire autrement avec l'option "QSA", mais comme cela ca marche.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} (.*)
    RewriteRule ^pref-(.+)\.html$ ./redirect.php?file=$1&%1 [L]
    Deviendrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^pref-(.+)\.html$ ./redirect.php?file=$1 [QSA,L]
    Une condition et capture sur la partie query string n'étant pas très utile et encore moins justifiée dans le cas présent.

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2007
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 169
    Points : 149
    Points
    149
    Par défaut
    Parfait, c'est effectivement beaucoup plus propre
    Merci.

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 26/03/2008, 20h00
  2. [URL Rewriting] Règle non prise en compte
    Par blanchonvincent dans le forum Apache
    Réponses: 8
    Dernier message: 03/03/2008, 08h54
  3. [URL Rewriting] Règle de redirection ?
    Par Emotion dans le forum Apache
    Réponses: 13
    Dernier message: 24/01/2008, 18h20
  4. Réponses: 3
    Dernier message: 15/01/2008, 14h52
  5. [URL Rewriting] règles quasi-identiques
    Par nicerico dans le forum Apache
    Réponses: 3
    Dernier message: 17/11/2007, 19h25

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