Concaténation de règles

  • Auteur de la discussion Auteur de la discussion Xou
  • Date de début Date de début
WRInaute discret
Bonjour,

je me demandais si je ne pouvais pas simplifier ces 4 règles là pour n'en faire qu'une seule:

Code:
RewriteRule ^([a-z]+)\.html$ index.php?page=$1 [L]
RewriteRule ^([a-z]+)-([a-z]+)\.html$ index.php?page=$1-$2 [L]
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)\.html$ index.php?page=$1-$2-$3 [L]
RewriteRule ^([a-z]+)-([a-z]+)-([a-z]+)-([a-z]+)\.html$ index.php?page=$1-$2-$3-$4 [L]
 
WRInaute impliqué
Si tu regardes bien le paramètre qu'il passe en page et donc $2, $3 etc.. est exactenment le même qui se trouve entre le ^ et \.html si on prend tout ce qui est caractère et - alors ça revient à faire ces 4 règles puisque si la page se nomme

ab-cd-ef-hj.html devien en => index.php?page=ab-cd-ef-hj

A+
 
WRInaute discret
Sir Dipp a dit:
Salut,

Essai ceci :
Code:
RewriteRule ^([az-]+)\.html$ index.php?page=$1 [L]

A+

Leonick à raison, cette règle ne marchera jamais !
à la rigueur j'aurais pu faire:
RewriteRule ^(.+)\.html$ index.php?page=$1 [L]
Mais je souhaite maîtriser ce qui est passé dans l'url.

Et pour cela il faut imbriquer les patterns:
RewriteRule ^([a-z]+(-[a-z]+){0,3})\.html$ index.php?page=$1 [L]


Merci d'avoir essayé de m'aider. ;)
 
Discussions similaires
Haut