Le rewriting fonctionne mais pas la redirection

Nouveau WRInaute
Salut a tous,

Voila je suis vraiment debutant en rewriting et apres avoir chercher a gauche et a droite sur le net, je me suis mis a faire mon premier .htaccess. Le rewriting de la page se fait bien par contre il me redirige pas, il retrouve pas la page. Je sais pas si je m'exprime bien ;-)

Si quelqu'un peut me dire si deja mon .htaccess est correct ?

Options +FollowSymlinks
RewriteEngine On
RewriteRule boutique,([[0-9a-zA-Z+]*),-([0-9]*).html product_info.php?products_id=$2 [L]
RewriteRule boutique/([[0-9a-zA-Z+]*)/(([0-9]_*)+)/ index.php?cPath=$2 [L]

Merci par avance pour votre aide.

@+
 
WRInaute passionné
Remplace par ceci
Code:
RewriteRule boutique,([[0-9a-zA-Z+]*),-([0-9]*).html$ product_info.php?products_id=$2 [L] 
RewriteRule boutique/([[0-9a-zA-Z+]*)/(([0-9]_*)+)/$ index.php?cPath=$2 [L]
Il y a eu un bon cour sur le Rewrite cette semaine essai de retrouver le post

Il faut bien pencer a mettre le signe $ entre les deux URL sinon la fonction Rewrite ne marchera pas
 
WRInaute discret
Hello,

C'est pour OsCommerce que tu cherches ? Il n'y a pas un truc tout fait ? Il me semblait être tombé là-dessus il y a quelques temps... mais je peux me tromper.

Si je retrouve, je te siffles ;)
 
WRInaute passionné
Bonjour,
Et alors, le problème vous tombe dessus le jour où vous voulez chercher par exemple "Quoi ?" dans une chaîne.
Comment écririez-vous la Regex ? Comme ça ?
!Quoi ?!
Eh non surtout pas ! Le point d'interrogation, vous le savez, sert à dire que la lettre juste avant est facultative (elle peut apparaître 0 ou 1 fois). Ici, l'espace derrière le point d'interrogation serait donc facultatif, mais ce n'est pas ce qu'on veut dire !

Alors, comment faire pour faire comprendre qu'on recherche "Quoi ?" alors que le point d'interrogation a déjà une signification ?
Il va falloir l'échapper. Cela signifie que vous devez mettre en fait un antislash "\" devant un caractère spécial. Ainsi, la bonne regex serait :
!Quoi \?!
Ici, l'antislash sert à dire que le point d'interrogation juste après n'est pas un symbole spécial, mais bel et bien une lettre comme une autre !

C'est la même chose pour tous les autres métacaractères que je vous ai montré plus haut (! ^ $ ( ) [ ] { } ? + * . \) : il faut mettre un antislash devant si vous voulez les utiliser dans votre recherche.
Vous remarquerez que pour utiliser un antislash il faut mettre... un antislash devant ! Comme ceci : \\
Pour comprendre les expressions régulières : l'excellent site du zéro

Tu y apprendras entre autres le sens du ^ au début du premier membre et du $ à la fin du premier membre, qui sont tous deux optionnels contrairement à ce qu'affirme Borower ;)
 
Nouveau WRInaute
D'abord merci a vous de vous interesser un peu a ce prob

Pour Borower > J'ai bien fait ta modif cela ne change rien, comme le dis Dj_Apx cela ne change pas grand chose cela est optionnel

Pour mojo > Oui c'est bien pour du Oscommerce, si tu me retrouve le truc que tu cherche, oui ca m'aiderais ;-)

Pour Dj_Apx > Oui j'ai vu que cela etait otptionnel

Bref je comprend toujours pas ce qui se passe, pourtant la variable $2 c'est bien l'id produit ou de la categorie, je comprend pas pourquoi il passe pas.

@+
 
WRInaute passionné
Nan mais si tu lis ce que j'ai cité, tu comprendras aussi le problème de ta règle. :)
Le but de mon message n'était pas de montrer que $ était optionnel, mais plutôt de répondre à ta question
Si quelqu'un peut me dire si deja mon .htaccess est correct ?
La réponse est non ;) jette un oeil au texte que j'ai cité ;)
 
Nouveau WRInaute
Je t'avoue que je plane beaucoup,

je viens de faire ca en rajoutant donc le \

RewriteRule boutique,([[0-9a-zA-Z+]*),-([0-9]*).html\$ product_info.php?products_id=$2 [L]
RewriteRule boutique/([[0-9a-zA-Z+]*)/(([0-9]_*)+)/\$ index.php?cPath=$2 [L]

ca fonctionne toujours pas.

Cela dis le site du zero est tres interessant.

merci

@+
 
WRInaute passionné
je viens de faire ca en rajoutant donc le \
Et tu l'as mis où ?? Tu as pris la peine de lire en entier ce que j'ai cité ? c'est du français. Maintenant regarde ta règle, caractère par caractère... s'il le faut à chaque caractère de ta règle réfère toi au texte que j'ai cité...

Morpheus57 a dit:
Je t'avoue que je plane beaucoup,
On est en France ici, c'est pas encore légalisé, tu devrais y aller mollo sur les bouffées...
 
Nouveau WRInaute
salut,

Oui j'ai bien lu le texte que tu m'a citer, et il est bien en francais ;-)

Le probleme c'est que ma regle comme ca :

RewriteRule boutique,([[0-9a-zA-Z+]*),-([0-9]*).html product_info.php?products_id=$2 [L]
RewriteRule boutique/([[0-9a-zA-Z+]*)/(([0-9]_*)+)/ index.php?cPath=$2 [L]

je la trouve correcte

J'ai egalement lu le la section rewriting du livre google trucs de pro de webrankinfo, je vois pas ce qu'il y a de faux sur cette regle

Merci
 
WRInaute passionné
Indice :
le problème se trouve sans doute là :
Code:
[[0-9a-zA-Z+]
et la solution se trouve sans doute là :
C'est la même chose pour tous les autres métacaractères que je vous ai montré plus haut (! ^ $ ( ) [ ] { } ? + * . \) : il faut mettre un antislash devant si vous voulez les utiliser dans votre recherche.
Ce n'est bien sûr pas le seul problème, mais ça devrait déjà te suffire à voir que tu n'as pas lu ta règle correctement.

Gaffe, le label bleu n'est pas loin...
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut