URL Rewriting

URL Rewriting - HTML/CSS - Programmation

Marsh Posté le 13-12-2011 à 15:18:42    

Voilà, j'ai fait milles et une recherche, j'ai encore un peu de mal à comprendre le fonctionnement de l'Urlrewriting via .htaccess.
 
J'ai un besoin
 
Je voudrais donc que mes liens soient sous la forme :
1) http://monsite.com/accueil qui renverrait vers la page index.php?menu=accueil
2) http://monsite.com/contact > index.php?menu=contact
3) http://monsite.com/porfolio/photos > index.php?menu=portfolio&rub=photos
4) http://monsite.com/blog/2011-12-13 > index.php?menu=blog&anne=2011&mois=12&jour=13
 
J'arrive bien à faire le 1) et 2), mais impossible de faire le reste ...
 
Questions diverses :
 
Que signifie les [L] ou [QSA] en fin de ligne ?
 
Mon fichier à moi ... je commence tout juste :p
 

Code :
  1. RewriteEngine on
  2. RewriteRule ^([a-z]+)/([0-9]{4})-([0-9]{2})-([0-9]{2})$-(.*) /index.php?menu=$1&annee=$2&mois=$3&titre=$4 [L]
  3. RewriteRule ^([a-z]+)/([0-9]{4})-([0-9]{2})-([0-9]{2})$ /index.php?menu=$1&annee=$2&mois=$3 [L]
  4. RewriteRule ^([a-z]+)/([0-9]{4})-([0-9]{2})$ /index.php?menu=$1&annee=$2&mois=$3 [L]
  5. RewriteRule ^([a-z]+)/([0-9]{4})$ /index.php?menu=$1&annee=$2 [L]
  6. RewriteRule ^([a-z]+)$ /index.php?menu=$1 [L]


 
En clair, selon les paramètres que je vais passer, j'aimerais pouvoir réécrire l'URL simplement et facilement.
 
Quel que soit le nombre de paramètres que je souhaite passer (en général pas plus de 6) je voudrais pouvoir générer l'URL réécrite.
 
Merci pour votre aide, si vous avez des liens ou autres afin de comprendre
1) le fonctionnement des chaines de caractères à saisir dans le code RewriteRule (les +,$^* etc)
2) l'ordre à respecter s'il y en a un
3) la variable de fin [?]
 
Avec ça en main je devrais pouvoir m'en tirer pas trop mal pour faire d'autre rewrite vers des fichiers 404 ou autre par ex ;)
 
Merci encore pour votre aide !

Reply

Marsh Posté le 13-12-2011 à 15:18:42   

Reply

Marsh Posté le 13-12-2011 à 16:41:06    

Tes règles sont bien trop compliquées alors que ce n'est pas nécessaire.
Les chaines sont des expressions régulières. [L] force l'arrêt de la règle.
^$ délimitent la chaîne.
Pour comprendre, il te faut connaître un minimum sur les expressions régulières : http://expreg.com/ . Ensuite, ça sera plus clair. En tout cas l'extrait que tu donnes ne correspond pas à ce dont tu as besoin.

Reply

Marsh Posté le 14-12-2011 à 10:05:24    

Merci PC_eXpert, j'ai jeté un oeil sur ce site, très pratique ... :)
Mais en fait ça résout qu'a moitié moi problème ...
Sachant que j'ai un site donc avec une rurbique "menu1" qui peut disposer de plusieurs autres variables types jour,mois,année ... alors qu'une autre rubrique "menu2" aura d'autres variables comme categories, ...
Faut il créer une ligne RewriteRule par url possible ? ou y a t'il une autre solution ?
 
RewriteEngine on  
RewriteRule ([a-z]+)/([0-9]+)/([0-9]+)/([0-9]+)$ /index.php?menu=$1&annee=$2&mois=$3&jour=$4
RewriteRule ([a-z]+)/([0-9]+)/([0-9]+)$ /index.php?menu=$1&annee=$2&mois=$3
RewriteRule ([a-z]+)/([a-z]+)$ /index.php?menu=$1&categorie=$2
 
J'avance doucement mais sûrement ;) merci pour ton aide !

Reply

Sujets relatifs:

Leave a Replay

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