|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2008 Messages : 14 ![]() |
Bonjour,
J'ai mis en place récemment une réécriture d'url sur mon site. Étant encore en train de le développer, les liens internes au site sont toujours de la forme mapage.php?param1=xx¶m2=xx... Via htaccess j'ai redirigé mes différents de façon à ce que l'url soit en format réécrite (http://www.monsite.fr/param1/param2/...) Tout fonctionne correctement sauf une page. Cette page peut accepter 3 ou 4 paramètres. Elle est de cette forme : mapage.php?param1=xx¶m2=xx¶m3=xx ou mapage.php?param1=xx¶m2=xx¶m3=xx¶m4=xx Le paramètre 4 dépend du paramètre 3. Suivant la valeur du paramètre 3 on a besoin du paramètre 4 ou pas. Coté htaccess maintenant. Voici le code : Code :
Astuce trouver sur le forum ici Bien sur si j'enlève une des deux règles, l'autre fonctionne. Une idée pour supprimer ce conflit ? |
||
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2005 Messages : 8 280 ![]() |
A mon avis, le problème vient de la 3ème ligne du code que tu donnes :
Code :
RewriteCond %{QUERY_STRING} ^param1=(.*)¶m2=(.*)¶m3=(.*)$
Tu as plusieurs façons de résoudre le problème comme par exemple utiliser un filtre plus précis que .*. Mais la solution la plus simple est d'inverser tes deux groupes de règles pour mettre celui réécrivant avec 4 paramètres avant celui avec 3 paramètres.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2008 Messages : 14 ![]() |
Effectivement, l'ordre de mes conditions posait problème.
Et associé à une erreur dans mon code j'étais pas prêt de trouver .En tout cas merci bien. Et sympa l'astuce "internal_redirect", bien trouvée. |
|
00
|
Copyright © 2000-2012 - www.developpez.com