8791 sujets

Développement web côté serveur, CMS

Bonjour,

je ne manipule pas souvent les expressions régulières et je bute sur un cas..

j'arrive à faire ceci...

j'ai des url comme domaine/shop/86 que je réécris comme domaine/shop/produit.php?id=86

avec la règle suivante:

RewriteRule ^([0-9]*)$ /shop/produit.php?id=$1 [L]


ça, ça marche, donc mon contexte et mon fichier .htaccess sont bons....la réécriture fonctionne.

Maintenant je voudrais rajouter le nom du produit dans l'URL propre et réécrire par exemple domaine/shop/86-nom-du-produit comme domaine/shop/produit.php?id=86

l'id est suivi d'un '-' et les espaces dans le nom de l'article sont remplacés par des '-'

j'ai fait la règle suivante, mais elle ne marche pas... :

RewriteRule ^([0-9]*)-([a-zA-Z0-9_]*)$ /shop/produit.php?id=$1 [L]

je vois pas où ça pèche Smiley cligne

le pire c'est que j'avais fait une telle règle récemment dans un autre contexte et elle marchait...
Modifié par lionel_css3 (24 Jan 2013 - 05:21)
Bonjour,
je vais surement te dire une bêtise, j'ai encore du mal avec les expressions régulières, mais j'essayerais peut-être ça:
RewriteRule ^([0-9]*)-([a-zA-Z0-9_]*)$ /shop/produit.php?id=$1-$2 [L]

ou bien un truc comme ça :
RewriteRule ^([0-9])(.*)$ /shop/produit.php?id=$1$2 [L]

Modifié par Raphi (24 Jan 2013 - 09:52)
En effet j'avais mal compris ce que tu voulais.
Étant donné que je galère déjà avec mes expressions régulières en php, vaux mieux que je laisse ma place à ceux qui se débrouille dans ce domaine. Smiley confused
Bon courage à toi.