URL Rewrinting spécifique a une page...

URL Rewrinting spécifique a une page... - PHP - Programmation

Marsh Posté le 24-01-2006 à 11:58:41    

hello
 
j'ai un site qui a 2 variables, qui sont $page et $lang
y'a une page de mon site qui nécessite une variable supllémentaire et j'aimerais bien l'inclure aussi en URL Rewriting...
 
pour l'instant dans mon .htacces y'a ceci:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-z0-9\_]+)-([a-z]+)\.html$  index.php?page=$1&lang=$2  [L]


 
donc pour que la 3ème variable soit pris en compte j'ai fait ceci:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-z0-9\_]+)-([a-z]+)-([a-z0-9\_]+)\.html$  index.php?page=$1&lang=$2&new=$3  [L]


 
rien de bien compliqué jusque là :D  
sauf que maintenant ça ne marche QUE sur la page avec la nouvelle variable :cry: (remarque c'est logique)
 
donc comment je peux faire ? est-ce que je dois faire un test sur chaque page pour vérifier si $new existe et passer tous mes liens en dynamique ?
ou alors y'a t'il une autre solution ? :??:  
 
merci :jap:

Reply

Marsh Posté le 24-01-2006 à 11:58:41   

Reply

Marsh Posté le 24-01-2006 à 12:20:49    

Proov a écrit :

hello
donc comment je peux faire ?


 
Laisser les deux règles, avec la nouvelle en premier, pour pas se faire masquer par l'autre ?
 
edit: il y a probablement une solution récursive, mais pour un cas simple comme ça c'est pas forcément indispensable.


Message édité par sielfried le 24-01-2006 à 12:21:51

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-01-2006 à 12:29:44    

ah on peux avoir plusieurs regles dans un .htaccess ?
 
je savais pas, on met la plus spécifique en haut et la + générale en bas ?

Reply

Marsh Posté le 24-01-2006 à 12:50:20    

Ben oui on peut avoir plusieurs règles, heureusement. :)
 
Et oui, les plus spécifiques au dessus, c'est mieux. Le [L] assure que le traitement s'arrête dès qu'une règle marche.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 24-01-2006 à 14:03:54    

ah excellent merci :)  
 
donc dans mon cas, je dois enlever le [L] de la 1ere regle ? :??:

Reply

Marsh Posté le 24-01-2006 à 14:23:20    

Par défaut, apache vérifie les régles "en cascade", c'est à dire qu'il va tester toutes les régles les une aprés les autres même si certaines ont fait un changement. Malheureusement, avec ça, il peut y avoir des "colisions de régles".
Pour qu'apache ne vérifie pas les régles situés aprés la premiére qui correspond à l'adresse envoyé par le navigateur, il faut lui préciser de s'arrêter dés qu'il en trouve une qui correspond. C'est là que le [L] intervient.
 
Dans ton cas, pour éviter tout probléme tout en ayant les deux régles qui fonctionnent, il faut que tu mettes la régle à trois variables en premier avec le [L] et que tu mettes l'autre ensuite.

Reply

Marsh Posté le 24-01-2006 à 14:43:06    

là j'ai mis les 2 règles avec les [L]
 
mais je vais tester ce que tu me dis :jap:  
en tout cas merci a vous 2 :hello:

Reply

Marsh Posté le 24-01-2006 à 16:10:02    

encore une chose,  
 
je viens de tester, ça marche que pour les chiffres et les lettres minuscules pour la 3eme variable... si je met des des lettres majuscule ça marche plu :(
 
j'ai essaye A-Z0-9 mais ça marche pas :/


Message édité par Proov le 24-01-2006 à 16:12:27
Reply

Marsh Posté le 24-01-2006 à 16:29:54    

Essaye avec A-Za-z0-9

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed