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] Ordre d'utilisation des regles


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [URL rewriting] Ordre d'utilisation des regles
    Bonjour,

    alors voila je vous explique mon probleme :
    je voudrais que quand on tappe : www.mondomaine.fr/romain, on atteigne la page www.mondomaine.fr/cmd/index.php?membre=romain.
    jusque la pas de probleme j'ai utilisé cette regle :
    RewriteRule ^(.*)/$ ./cmd/photos.php?membre=$1 [L]

    maintenant je voudrais que quand on tappe www.mondomaine.fr/romain/super/, on atteigne la page http://www.mondomaine.fr/cmd/index.p...main&cat=super
    la je n'es pas de probleme non plus j'utilise cette regle :
    RewriteRule ^(.*)/(.*)/$ ./cmd/photos.php?membre=$1&cat=$2 [L]

    Le probleme c'est que je veut que si le visiteur tappe www.mondomaine.fr/romain/ il atteigne la page de romain et que si il tappe www.mondomaine.fr/romain/super/ il atteigne la page de romain avec la categorie super, hors quel que soit l'ordre dans lequel je met les regles dans le htaccess c'est uniquement la premiere qui est prise en compte du coup si il rentre que son nom, ca affiche une erreur puisqu'il n'y a pas de categorie, soit si il rentre son nom et sa categorie il n'atteindra que sa page mais sans la categorie.

    voila je voudrais donc que l'on puisse soit rentré que le nom soit le nom et la categorie mais que ca fontionne dans les deux cas.

    un peut dur a expliqué tout ca, j'espere que vous avez comprit, sinon je reexpliquerai :p

    voila merci

  2. #2
    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
    Telle que la première règle donnée est écrite c'est "normal" dans la mesure où le motif ne tient pas compte des slashs qui composent le chemin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^(.*)/$ ./cmd/photos.php?membre=$1 [L]
    Il faudrait probablement la déspécialiser par ^([^/]*)/$ par exemple.

    Normalement, passer la deuxième avant la première (et en admettant que ce sont les deux seules règles que vous possédez) devrait également permettre de résoudre le problème rencontré.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    alors ca avance :
    donc voila mes deux nouvelles regles qui fonctionnent :

    RewriteRule ^([^/]*)/([^/]*)$ ./cmd/photos.php?membre=$1&cat=$2
    RewriteRule ^([^/]*)/([^/]*)/$ ./cmd/photos.php?membre=$1&cat=$2

    la premiere permet de rentré le nom/categorie
    la deuxieme permet de rentré le nom/categorie/

    maintenant le probleme c'est pour quand on rentre que le nom, pour ne pas avoir le slash a la fin :

    www.mondomaine.fr/romain/ : ca fonctionne
    www.mondomaine.fr/romain : ne fonctionne pas

    j'ai essayer de faire une redirection pour ajouter automatiquement le dernier slash mais je n'y arrive pas, il doit aussi etre possible de faire une autre regle mais je n'y arrive pas non plus

    help me please

  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
    Oui, c'est une fois de plus normal puisque vos règles (celles qui sont données plus haut du moins) ne permettent pas de prendre ce cas précis en compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([^/]+)/?$ cmd/photos.php?membre=$1 [L]
    Par exemple.

    Mais attention à celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^([^/]*)/([^/]*)$ ./cmd/photos.php?membre=$1&cat=$2 [L]
    Etant donné le motif utilisé, elle prendra indifféremment des URL de type www.mondomaine.fr/membre/ et www.mondomaine.fr/membre/cat(/). Est-ce volontaire ?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci de m'aidez, grace a toi j'avance

    RewriteRule ^([^/]+)/?$ cmd/photos.php?membre=$1
    RewriteRule ^([^/]*)/([^/]*)$ ./cmd/photos.php?membre=$1&cat=$2

    Alors, les deux marches independament, mais par contre impossible de les faires fonctionner en meme temps, quelle est cette astuce qui me permettra d'avoir les deux regles en meme temps.


    RE :

    Bon j'ai fini par trouver une regle qui fait tout, en bidouillant, je voudrais quand meme savoir si elle est correct et efficace.

    RewriteRule ^([^/]*)/?([^/]*)/?$ ./cmd/photos.php?membre=$1&cat=$2

    J'ai un nouveau probleme par contre c'est que quand on tappe l'adresse de base on tombe sur la page ./cmd/photos.php sans aucun parametre et non pas sur l'index. Si vous avez une idée pour ca, n'hezité pas :d

    Alors me revoila
    donc le premier probleme est corriger c'est a dire que quand on tappe l'adresse de base on tombe bien sur l'index, pour ca j'ai utiliser cette requette :
    RewriteRule ^([^/]+)/?([^/]+)/?$ ./cmd/photos.php?membre=$1&cat=$2

    maintenant je voudrais que quand on tappe www.mondomaine.com/super.php
    on tombe bien sur la page super.php et non pas sur la page ./cmd/photos.php?membre=super.php

    :p

  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
    Ces règles ne satisferaient-elles pas vos besoins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteRule ^([^./]+)/?$ cmd/photos.php?membre=$1 [L]
    RewriteRule ^([^/]+)/([^./]+)/?$ cmd/photos.php?membre=$1&cat=$2 [L]


    (ce qui veut dire que votre paramètre membre ne doit pas contenir de point)

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    bon en effet c'est mieux avec tes règles.
    donc maintenant tout marche nickel je te remercie vraiment
    a +

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

Discussions similaires

  1. [URL rewriting] Remplacer l'extension des fichiers .php
    Par l.laurent60 dans le forum Apache
    Réponses: 1
    Dernier message: 14/07/2010, 18h12
  2. Réponses: 2
    Dernier message: 28/05/2010, 23h38
  3. Réponses: 1
    Dernier message: 24/01/2008, 16h00
  4. Réponses: 2
    Dernier message: 07/09/2007, 13h26
  5. [URL Rewriting] ordre d'exécution des règles
    Par safisafi dans le forum Apache
    Réponses: 1
    Dernier message: 21/11/2006, 18h52

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