Version complète: sur le forum Webmaster Hub : pb de réécriture d'url - aide demandée
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
slender
Salut,

je veux transformer l'url:
CODE
produit_ok_456.php

dans laquelle 456 est ma partie variable, en:
CODE
produit_ok.php?produit=456

j'ai écris la règle:
CODE
RewriteRule ^produit_ok_([0-9]+)\.php$ produit_ok.php?produit=$1 [L]

mais elle ne fonctionne pas... angry.gif

slender
Dan
Essaie en supprimant le ^ du début de ta règle... parce que ton URL comprend peut être un / au début wink.gif
CODE
RewriteRule produit_ok_([0-9]+)\.php$ produit_ok.php?produit=$1 [L]


Si cette règle fonctionne, tu peux aussi la remplacer par
CODE
RewriteRule ^/?produit_ok_([0-9]+)\.php$ produit_ok.php?produit=$1 [L]
slender
Salut dan,
merci de ta réponse rapide,
La règle est bonne mais (pour une autre raison X?) elle ne marche pas dans le dossier où je travaille.
J'ai testé au niveau de la racine du site, la règle réécrit correctement et ça marche, la même règle dans le dossier où j'ai les fichiers à trouver ne marche pas...
captain_torche
C'est logique :
Si ta page se trouve à l'emplacement monsite.com/rep/produit_ok_456.php, elle sera réécrite en monsite.com/produit_ok.php?produit=456, qui n'existe pas.
Si le répertoire est fixe, tu peux réécrire la règle comme suit :
CODE
RewriteRule rep/produit_ok_([0-9]+)\.php$ rep/produit_ok.php?produit=$1 [L]
Dan
De plus, si dans ce répertoire tu as besoin des règles écrites au niveau supérieur, n'oublie pas de mettre :
CODE
RewriteOptions Inherit


Dans le cas contraire, une seule règle remplacerait toutes les règles du niveau supérieur.

Lorsque tu dis "la règle ne marche pas", tu as quoi comme erreur ? 404 ? 500 ? autre ?
slender
bsr;
CITATION(captain_torche @ lundi 11 juin 2007 à 20:10) *
Si ta page se trouve à l'emplacement monsite.com/rep/produit_ok_456.php,

C'est exactement le cas. J'avais cependant résolu le problème en mettant la règle donnée par Dan dans un premier temps, directement dans le répertoire en cause avec un résultat correct, le visiteur à qui je destinais le document après paiement paypal trouvait son document qui avait été libéré du paiement en table.
A votre avis dois-je me contenter de ce résultat ou mettre la règle que tu me donnes dans un second temps au niveau du htaccess à la racine ou bien rester avec la première régle au niveau du répertoire. Unification?

Dan, je récupérais une 404, ce qui est logique car il ne trouvait pas la page comme le décrit captain_torche.

Merci en tout cas smile.gif
slender
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.