URL Rewrinting spécifique a une page... - PHP - Programmation
Marsh Posté le 24-01-2006 à 12:20:49
Proov a écrit : hello |
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.
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 ?
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.
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 ?
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.
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
en tout cas merci a vous 2
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
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à
sauf que maintenant ça ne marche QUE sur la page avec la nouvelle variable (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