rewriting avec des - en nombres

WRInaute occasionnel
Bonjour,

J'essaye d'afficher ma page avec un url dit propre

mon lien est le suivant

Code:
<a href='flux-$id.html'>  (flux-7.html)

et le htacess

RewriteRule ^flux-([0-9]+)\.html$ /flux.php?id=$1 [L]

Et ça fonctionne sans soucis... mais en lieu et en place de flux, j'aimerais indiquer le titre de ma variable soit un url comme ceci

/www-mon-site-7.html

il me semble que le cumul de - dans www-mon-site pose problème car il ne lit plus l'id (7)

mon htaccess est le suivant
Code:
RewriteRule ^(.*)([0-9]+)\.html$ /flux.php?id=$1 [L]

Y a t'il une solution ou dois-je laisser l'ancienne url propre ?

D'avance merci pour votre aide
Yule
 
WRInaute discret
Essaye:
Code:
RewriteRule ^([^0-9]*)([0-9]+)\.html$ /flux.php?id=$2 [L]
+exlus les chiffres de ton premier groupement, sinon il va aller jusqu'au bout et ne rien matcher sur le deuxième (pas sûr à 100%, mais ça en mange pas de pain).
+ $2 dans ton remplacement: c'est au deuxième groupement que tu fais référence, pas au premier :wink:
 
WRInaute occasionnel
Re !

Ecoute je mange volontiers de ton pain ! C'est parfait et ça fonctionne à merveille

MERCI :lol:

Cordialement
Yule
 
WRInaute passionné
Attention cependant :

RewriteRule ^([^0-9]*)([0-9]+)\.html$ /flux.php?id=$2 [L]

cette expression risque d'être trop généraliste. En effet, tu risque de rewriter des urls de type 1.html, toto2.html, et de ne pas rewriter test-50-20.html.

Dans ton exemple le délimiteur important reste le dernier tiret, qui te permet de récupérer $2.

j'opterais donc plus pour un :

Code:
RewriteRule ^(.*)-([0-9]+)\.html$ /flux.php?id=$2 [L]

Ici tu es sûr de traiter les fichiers de type unechaine-unnombre.html
De plus tu ne récupère pas le dernier tiret. ;)
 
WRInaute discret
En effet. Je suis parti du principe qu'il n'y avait pas de nmbres dans ses url, ce qui peut être faux !
 
Discussions similaires
Haut