xTonRx Posté 24 Février 2005 Posté 24 Février 2005 (modifié) Je viens de reprendre ce code (qui permet: disque.php?var1=valeur1&var2=valeur2&...&varN=valeurN ) dans un htaccess : RewriteEngine onRewriteRule (.*)(-.+)-([^-]+)-([^-&]*)([^-]*)\.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é 24 Février 2005 par Dan
Dan Posté 24 Février 2005 Posté 24 Février 2005 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
xTonRx Posté 24 Février 2005 Auteur Posté 24 Février 2005 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
Dan Posté 24 Février 2005 Posté 24 Février 2005 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.
xTonRx Posté 28 Février 2005 Auteur Posté 28 Février 2005 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 Posté 28 Février 2005 Posté 28 Février 2005 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.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant