[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:
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