Page 1 sur 1

URL rewriting

Posté : 13 avr. 2008, 19:01
par guillaume40
Bonjour,
Je ne savais pas trop où posté donc j'ai mis ici.
Donc j'aimerai savoir si sur de l'URL rewriting il y a des moyens pour par exemple
J'ai une URL du type :
http://site.com/?page=accueil&mode=check&id=13

De faire une URL du genre http://site.com/accueil/check/13
Mais dans le cas où un argument serai absent disont il n'y a pas de mode = check
Que sa fasse une url du genre
ttp://site.com/accueil/13

Sans avoir à créer plusieurs lignes
SI je fais
RewriteRule ^(.*)/(.*)/([0-9]+)$ /index.php?page=$1&mode=$2&id=$3 [L]

Merci d'avance

Re: URL rewriting

Posté : 13 avr. 2008, 21:51
par Victor BRITO
Essaie ce .htaccess

Code : Tout sélectionner

RewriteEngine on Options +FollowSymlinks RewriteRule ^([a-z]+)/([a-z]*)/([0-9]+)$ /?page=$1&mode=$2&id=$3 [L] RewriteRule ^([a-z]+)/([0-9]+)$ /?page=$1&id=$2 [L]
En codant de la règle la plus complexe à la plus simple (ainsi on évite la plupart des conflits possibles).

Et n'oublie pas de vérifier que les liens dans le site sont bien les URLs réécrites. ;)

Posté : 13 avr. 2008, 22:04
par zeus
Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "Autre".

Re: URL rewriting

Posté : 13 avr. 2008, 22:07
par hakazizi
Essaie ce .htaccess

Code : Tout sélectionner

RewriteEngine on Options +FollowSymlinks RewriteRule ^([a-z]+)/([a-z]*)/([0-9]+)$ /?page=$1&mode=$2&id=$3 [L] RewriteRule ^([a-z]+)/([0-9]+)$ /?page=$1&id=$2 [L]
En codant de la règle la plus complexe à la plus simple (ainsi on évite la plupart des conflits possibles).

Et n'oublie pas de vérifier que les liens dans le site sont bien les URLs réécrites. ;)
il faut préciser "index.php" dans le rewritte.
et la lettre dans les crochet est differente si il y a une ou plusieur variable
[QSA,L] pour une et
[L] quand il y en a plusieurs

Posté : 14 avr. 2008, 00:39
par albat
J'ai un doute... :-k

Le [L] ne doit-il pas être réservé pour la dernière ligne de règles de réécriture ? :?:

Posté : 14 avr. 2008, 03:46
par Sékiltoyai
Il indique que on s'arrête si la règle match, donc il peut être utilisé sur plusieurs règles si elles sont exclusives…

Posté : 14 avr. 2008, 07:17
par Cyrano
Le [L] peut être assimilé au "break" dans un switch : si une règle correspond, on sort de la phase vérification.

Posté : 14 avr. 2008, 08:51
par albat
Merci. :oops: