Mes règles d'écriture entrent en conflit....
3 messages
• Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
- ouiffi
- WRInaute discret

- Messages: 100
- Inscription: 28 Mar 2005
Mes règles d'écriture entrent en conflit....
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
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
- ouiffi
- WRInaute discret

- Messages: 100
- Inscription: 28 Mar 2005
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
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
- ouiffi
- WRInaute discret

- Messages: 100
- Inscription: 28 Mar 2005
Bonjour,
Mon souci venait de 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
Mon souci venait de là :
- Code: Tout sélectionner
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
3 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Deux regles en conflit
- Conflit possible ou ordre d'écriture des règles ?
- Conflit entre règles de rewriting (RewriteRule)
- Plusieurs regles qui rentrent en conflit...
- [Résolu] Conflit dans les régles de réécriture.
- [Résolu] Conflit entre 3 règles d'URL rewriting
- [.htaccess] Hériter des règles de ré-écriture du niveau supé
- Besoin d'aide pour mes regles de réécriture...
- Conseil pour choix de mes règles d'URL svp
- refuser accès au site aux utilisateurs qui entrent url dans le navigateur
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
