Version complète: sur le forum Webmaster Hub : url rewriting "à la volée"
Webmaster Hub > Promotion de Sites Internet > Techniques de Référencement
xTonRx
Je viens de reprendre ce code (qui permet: disque.php?var1=valeur1&var2=valeur2&...&varN=valeurN ) dans un htaccess :

CODE
RewriteEngine on
RewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.html $1$2&$3=$4$5\.html [N]
RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html $1.php?$2=$3$4 [L]
RewriteRule ^(.*).html $1.php [L]


Je passe la page: www.monsite.com/45/disque-rub-7.html

Ca me retoune une erreur 404 et je ne comprend pas pourquoi.
Le htaccess est bien dans le dossier 45

D'où cela peut-il venir?

Merci beaucoup
Dan
Bonjour,

Tu as probablement voulu adapter les dernier paragraphe de l'article La réécriture d'URL récursive mais n'a pas fait attention au premier terme....

L'exemple donné est:
RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N]
RewriteRule ([^-]+)-([^-]*)(.*)\.html program.php?$1=$2$3 [L]

et le fait de rajouter un (.*) devant la deuxième expression fait que cette partie va "dévorer" plus de caractères que nécessaire. Le . vaut pour n'importe quel caractère, y compris le tiret de séparation.

Il vaut mieux mettre ([^-]+) à la place wink.gif

Dan
xTonRx
salut Dan
tu veux dire ceci:

CODE
RewriteRule (.+)-([^-]+)-([^-&]*)([^-]*)\.html $1&$2=$3$4\.html [N]
RewriteRule ([^-]+)-([^-]*)([^-]+)\.html disque.php?$1=$2$3 [L]


je passe donc la page: www.monsite.com/45/disque-rub-7.html
tjs cette erreur 404
Dan
Non, pas celle là... plutôt ceci :

CODE
RewriteRule ([^-]+)-([^-]+)-([^-]*)(.*)\.html $1.php?$2=$3$4 [L]


Supprime la première règle pour voir si celle-ci passe... tu n'as qu'une variable de toutes manières.
xTonRx
nikel Dan g reussi a me dépatouiller de tout ca
reste un souci majeur: comment gérer une ancre de lien ds un fichier htaccess ? car etant donné que c est un #, il me l'interprète comme commentaire

merci
Dan
CITATION(xTonRx @ lundi 28 février 2005, 11h43)
reste un souci majeur: comment gérer une ancre de lien ds un fichier htaccess ? car etant donné que c est un #, il me l'interprète comme commentaire
*

Tu dois pouvoir enlever l'interprétation du # en le faisant précéder d'un backslash... mais j'ai quelques doutes tout de même.
xTonRx
yes g essayé, mais cela ne marchait pas
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.