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 :

[URLRewriting] Conflit entre 2 règles


Sujet :

Apache

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Par défaut [URLRewriting] Conflit entre 2 règles
    Bonjour,
    J'ai une question à propos de mon fichier de réécriture d'url que je décris ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    ########
    # Admin : dans le cas ou mon url est de la forme
    # www.monsite.com/admin/variable1/variable2/
    # je redirige vers www.monsite.com/admin/variable1/index.php?Competition=variable2
    ########
    RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$
    RewriteCond %{REQUEST_URI} admin/.*
    RewriteRule ^admin/(.*)/(.*)/ /admin/$2/index.php?Competition=$1 [QSA,L]
     
    ########
    # Tournois : dans le cas où on n'est pas en admin, j'ai une règle spécifique
    # pour le répertoire tournoi
    ########
    RewriteCond %{REQUEST_URI} !admin/.*
    RewriteRule ^(.*)/tournois/([0-9]*)/ /php/tournois/classement.php?IdTournoi=$2&Competition=$1 [QSA,L]
    RewriteRule ^(.*)/tournois/index.php php/tournois/index.php?Competition=$1 [QSA,L]
     
    ########
    # Divers : si on n'est pas dans le répertoire admin ou include
    # www.monsite.com/variable1/variable2/
    # je redirige vers www.monsite.com/php/variable2/index.php?Competition=variable1
    ########
    RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$
    RewriteCond %{REQUEST_URI} !admin/.*
    RewriteCond %{REQUEST_URI} !include/.*
    RewriteRule ^(.*)/(.*)/ php/$2/index.php?Competition=$1 [QSA,L]
     
    ########
    # Divers : si on n'est pas dans le répertoire admin ou include
    # www.monsite.com/variable1/
    # je redirige vers www.monsite.com/index.php?Competition=variable1
    ########
    RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$
    RewriteCond %{REQUEST_URI} !admin/.*
    RewriteCond %{REQUEST_URI} !include/.*
    RewriteRule ^(.*)/ index.php?Competition=$1 [QSA,L]



    Le souci en fait c'est que l'url http:/www.monsite.com/admin/ligue1/tournois/
    pointe sur http://www.monsite.com/php/tournois/
    au lieu de http://www.monsite.com/admin/tournois/index.php

    Je ne comprends vraiment pas, la 1ère règle devrait s'appliquer (et le L devrait faire que tout s'arrete ensuite, or c'est l'avant dernière règle qui entre en conflit)

    Règle qui devrait s'appliquer
    RewriteRule ^admin/(.*)/(.*)/ /admin/$2/index.php?Competition=$1 [QSA,L]

    Or c'est celle ci qui s'applique
    RewriteRule ^(.*)/(.*)/ php/$2/index.php?Competition=$1 [QSA,L]

    Merci !
    Julien

  2. #2
    Membre émérite
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Par défaut
    Oui, mais tu n'as pas les mêmes conditions pour l'application des 2 règles ?!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 30
    Par défaut
    Oui mais c'est normal
    La 1ère règle s'applique pour le dossier admin uniquement
    La 2nde sinon

    Je pensais que le L faisait que le "script" s'arrêtait juste après.

    Mon souci venait de là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteCond %{REQUEST_URI} !admin/.*
    RewriteRule ^(.*)/tournois/([0-9]*)/ /php/tournois/classement.php?IdTournoi=$2&Competition=$1 [QSA,L]
    RewriteRule ^(.*)/tournois/index.php php/tournois/index.php?Competition=$1 [QSA,L]
    En effet seule la 1ère ligne suivant la condition est fonction de cete condition
    Il fallait donc mettre la condition avant chaque ligne.
    Il doit y avoir une solution pour ne l'écrire qu'une fois je pense mais je ne la connais pas.

    Julien

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2010, 10h06
  2. Possibles conflits entre GL, GLAUX et GLUT
    Par barthelv dans le forum GLUT
    Réponses: 1
    Dernier message: 19/11/2004, 12h31
  3. Conflit entre bases de données
    Par BRODU dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2004, 11h40
  4. conflit entre couleurs
    Par khayyam90 dans le forum OpenGL
    Réponses: 2
    Dernier message: 03/07/2004, 18h00
  5. [Technique] Conflits entre plusieurs requêtes
    Par Neowile dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 24/03/2003, 09h37

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