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égle d'écriture avec variable


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut Régle d'écriture avec variable
    Bonjour, j'essaye de mettre en place url rewriting sur mon site et je suis confronté au pb suivant:
    mes urls sont de la forme:
    http://www.monsite.fr/index.php?page=var1&var2=var3
    je n'arrive pas à écrire la règle qui vas bien (ce qui me gène c'est var2)
    en fait $var2 (id_catalogue dans mon exemple) change suivant la page

    RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /inex.php?page=$1&id_catalogue=$3 [L]

    si vous pouviez me mettre sur la voix, merci.

  2. #2
    Membre expérimenté

    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
    Par défaut
    Je n'ai pas compris le problème rencontré En quoi var2/id_catalogue vous gêne-t-il ? D'après votre règle sa valeur est cherchée dans l'URL (troisième capture) donc suppose qu'elle y figure (quoique, ici, il pourrait être facultatif vu le quantificateur * ...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    bonjour julp, et merci pour l'aide,
    ce qui va pas c'est c'est que j'ai une page principale (index) dans laquelle j'inclus des pages et dans chacune de ces pages j'ai un nom de variable qui change en fonction de la page (nommé var2).
    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    RewriteRule ^([A-Za-z]+)\.html$ index.php?page=$1 [L]
    RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)\.html$ /index.php?page=$1 [L]
    RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /index.php?page=$1&id_catalogue=$3 [L]
    RewriteRule ^([A-Za-z]+)-([a-z-]+)-([0-9]*)\.html$ /index.php?pag=fiche&id_fiche_catalogue=$3 [L]
    la dernière est pas pris en compte (à cause de l'avant dernière je pense ).

  4. #4
    Membre expérimenté

    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
    Par défaut
    Oui, vos 3e et 4e règles sont beaucoup trop similaires au point où la 3e prendra toujours le dessus sur la 4e.

    Si la casse doit vraiment différencier ces deux cas de figure, je pense qu'il aurait plutôt fallu inverser l'ordre de ces deux règles où écrire la 3e différemment (je pense à : si ce paramètre commence par un caractère majuscule et peu importe les autres - [A-Z][A-Za-z-]+). Tout dépend ce que vous souhaitez ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Par défaut
    en fait ce qui me chiffonne c'est que la 4ème règle, n'est pas la dernière à être écrite, si je la différencie avec les majuscules ok mais pour les suivantes ?!??
    j'avoue que je suis un peut perdu là dedans et y doit avoir des choses que j'ai pas bien compris.
    dans mon esprit j'étais convaincu qu'on pouvais écrire une règle en mettant des variables "partout" c'est à dire en nom de variable et en variable elle même ( RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /index.php?page=$1&i$3=$4 [L]

    Pour résumer dans mon site j'ai un catalogue avec des fiches articles, et un système de news avec des pages article par article, et bien sur des pages simple du genre "contact" etc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    RewriteRule ^([A-Za-z]+)\.html$ index.php?page=$1 [L]
    RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)\.html$ /index.php?page=$1 [L]
    RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /index.php?page=$1&id_catalogue=$3 [L]
    RewriteRule ^([A-Za-z]+)-([a-z-]+)-([0-9]*)\.html$ /index.php?pag=fiche&id_fiche_catalogue=$3 [L]
    RewriteRule ^([A-Za-z]+)-([a-z-]+)-([0-9]*)\.html$ /index.php?pag=news&id_news_select=$3 [L]

  6. #6
    Membre expérimenté

    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
    Par défaut
    Citation Envoyé par hervedum35
    j'étais convaincu qu'on pouvais écrire une règle en mettant des variables "partout" c'est à dire en nom de variable et en variable elle même ( RewriteRule ^([A-Za-z]+)-([A-Za-z-]+)-([0-9]*)\.html$ /index.php?page=$1&i$3=$4 [L]
    Mais ça l'est ! Tout ce qui figure dans l'URL peut être repris (capture) dans l'adresse réelle (en fait elle ne le sera pas forcément) vers laquelle on redirige. C'est le principe même des expressions rationnelles. Mais le module de réécriture a tout de même ses limites (en nombre de captures par exemple).

    Je ne sais pas à quoi correspondent vos différentes règles mais plusieurs ont le même motif. Que cherchez-vous à faire au travers des règles n°4 et 5 (cf message ci-dessus) ? La troisième n'assure-t-elle pas déjà ces deux cas de figure ?

Discussions similaires

  1. écriture d'une formule avec "variable"
    Par stephane31 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/08/2007, 16h48
  2. erreur à l'écriture avec SQL
    Par Homer dans le forum ASP
    Réponses: 5
    Dernier message: 07/02/2005, 14h03
  3. Règles de surcharge avec overload ?
    Par Benjamin GAGNEUX dans le forum Langage
    Réponses: 5
    Dernier message: 07/07/2004, 17h19
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  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