Aller au contenu

url rewriting "à la volée"


xTonRx

Sujets conseillés

Je viens de reprendre ce code (qui permet: disque.php?var1=valeur1&var2=valeur2&...&varN=valeurN ) dans un htaccess :

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

Modifié par Dan
Lien vers le commentaire
Partager sur d’autres sites

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 ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

salut Dan

tu veux dire ceci:

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

Lien vers le commentaire
Partager sur d’autres sites

Non, pas celle là... plutôt ceci :

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...