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 quasi-identiques


Sujet :

Apache

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut [URL Rewriting] règles quasi-identiques
    Bonjour

    j'essaie actuellement de mettre en place des URL Rewriting
    je veux ecrire plusieurs regles avec 2 arguments
    mais seule la premiere regle avec deux arguments fonctionne
    la seconde n'est apparement pas lue
    si je les inverse, c'est toujours UNIQUEMENT la premiere ecrite qui marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    RewriteEngine on
    # premiere regle avec deux arguments FONCTIONNE
    RewriteRule ^(.*)-([0-9]+)-([0-9a-zA-Z-]+)\.html$ $1.php\?id_cat=$2&ref_pdt=$3 
    #seconde regle avec deux arguments FONCTIONNE PAS
    RewriteRule ^(.*)-([0-9]+)-([0-9a-zA-Z-]+)\.html$ $1.php\?id_cat=$2&rechnom=$3 
    #premiere regle avec un argument FONCTIONNE
    RewriteRule ^(.*)-([0-9a-zA-Z-]+)\.html$ $1.php\?id_cat=$2
    Merci de votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 201
    Points : 108
    Points
    108
    Par défaut
    Tes deux motifs sont identiques... Comment tu veux que le parser les différencie ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    identique : oui dans la structure
    mais pour etre plus concret :
    dans ma page j'ai deux liens distincts
    chaque lien possede 2 variables
    ?id_cat=$2&ref_pdt=$3
    id_cat=$2&rechnom=$3
    et c'est là que je bloque car le 1er fonctionne mais pas le second

    Merci de votre aide

  4. #4
    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
    Tu n'es pas clair dans tes explications : tes liens différents ressemblent à quoi ? Dans ce qui suit, je pars du principe que tu as des liens /xxx-123-yyy.html?id_cat=titi&ref_pdt=toto et /xxx-123-yyy.html?id_cat=titi&rechnom=toto. Si ce n'est pas la cas, explique-toi mieux et donne des exemples clairs de ce que tu as et de ce que tu voudrais : on ne comprend pas comment, à partir d'un même URL, tu comptes obtenir 2 réécritures différentes. Comprends bien qu'il faut bien une différence dans les URL demandées par les navigateurs pour faire 2 réécritures différentes !!

    Citation Envoyé par nicerico Voir le message
    identique : oui dans la structure
    C'est bien le problème : avec ton RewriteRule, tu testes le chemin (la partie /... jusqu'au ?) qui est le même dans les 2 cas. Pour y arriver, il faut que tu testes la query string (ce qui est après le ?). Pour cela, il faut que tu utilises un RewriteCond pour tester la présence de ton paramètre dans la query string puis faire la redirection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RewriteEngine on
    RewriteCond %{ QUERY_STRING} ref_pdt=
    RewriteRule ^(.*)-([0-9]+)-([0-9a-zA-Z-]+)\.html$ $1.php\?id_cat=$2&ref_pdt=$3 [L]
     
    RewriteCond %{ QUERY_STRING} rechnom=
    RewriteRule ^(.*)-([0-9]+)-([0-9a-zA-Z-]+)\.html$ $1.php\?id_cat=$2&rechnom=$3

Discussions similaires

  1. [URL Rewriting] règle concernant RewriteRule
    Par prox78 dans le forum Apache
    Réponses: 2
    Dernier message: 08/04/2008, 11h15
  2. [URL Rewriting] Règles partiellement fonctionnelles
    Par kangaxx dans le forum Apache
    Réponses: 6
    Dernier message: 30/03/2008, 18h53
  3. Réponses: 12
    Dernier message: 26/03/2008, 20h00
  4. [URL Rewriting] Règle non prise en compte
    Par blanchonvincent dans le forum Apache
    Réponses: 8
    Dernier message: 03/03/2008, 08h54
  5. [URL Rewriting] Règle de redirection ?
    Par Emotion dans le forum Apache
    Réponses: 13
    Dernier message: 24/01/2008, 18h20

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