Mes règles d'écriture entrent en conflit....

  • Auteur de la discussion ouiffi
  • Date de début
O
ouiffi
Guest
Bonjour,
J'ai une question à propos de mon fichier de réécriture d'url que je décris ci-dessous.

########
# 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.p ... =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 ... =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]


Mon souci : je constate que le [L] ne joue pas son rôle puisque les 2 derniers blocs (divers) rentrent en conflit avec ma règle sur les tournois, écrites plus haut.

Pourriez-vous m'indiquer ce qui vous semble poser souci dans mon cas ?
Je peux, si vous le souhaitez, fournir l'url directe du site pour exposer mieux mon souci.

Merci de votre retour.
Julien
 
O
ouiffi
Guest
Précision :
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
 
O
ouiffi
Guest
Bonjour,

Mon souci venait de là :

Code:
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 cette 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.

Par ailleurs je constate donc que le L n'arrete pas le "script" lorsque le règle est appliquée.

Julien
 
Discussions similaires
Haut