papounet Posté 3 Octobre 2008 Posté 3 Octobre 2008 Je dois éffectuer une redirection un peu délicate et là je bloque, mais je vous explique d'abord la raison: j'avais fait une fausse manip de rewriting que je n'ai pas vu tout suite, et les urls étaient insensées car des fois j'obtenais des chose du style: www.ndd.tld/jeux-nouveautAs-s-122.html créée par le titre "jeux nouveautés" J'ai donc corrigé mon rewriting et maintenant les urls générées sont donc: www.ndd.tld/jeux-nouveautes-s-122.html Mais le problème est que les deux sorte d'urls ont eu le temps d'être indexées par les moteurs de recherche et ainsi tout les pages de détails se retrouvent en duplicate dans les moteurs. Lorsque je me suis apercu de l'erreur j'aurais du rediriger en jouant sur la variable "-s-" mais n'y ai absolument pas pensé !! Maintenant j'essaie de redirigé sur une autre lettre justement mais en jouant seulement sur la lettre et l'ID, je m'explique le top serait de détecter -s-ID.html et le rediriger sur -d-ID.html mais le .htaccess demande une urls complète dans la seconde partie du rewrite ce qui ne change rien puisque je redirige nouveautAs-s-122.html sur nouveautAs-d-122.html Assez dur à expliquer alors le bout de code parlera mieux! D'origine: RewriteRule ^(.*)-s-([0-9]*).html$ single.php?id=$2 [L] Ma facon: RewriteRule ^(.*)-s-([0-9]*).html$ http://www.ndd.tld/$1-d-$2.html [L,R=301]RewriteRule ^(.*)-d-([0-9]*).html$ single.php?id=$2 [L] ce que je désire mais qui ne fonctionne pas: RewriteRule ^-s-([0-9]*).html$ -d-$1.html [L,R=301]RewriteRule ^(.*)-d-([0-9]*).html$ single.php?id=$2 [L] En gros je cherche une redirection grace à l'ID pour delete ce fameux dupplicate !!
Dan Posté 4 Octobre 2008 Posté 4 Octobre 2008 Ma facon: RewriteRule ^(.*)-s-([0-9]*).html$ http://www.ndd.tld/$1-d-$2.html [L,R=301]RewriteRule ^(.*)-d-([0-9]*).html$ single.php?id=$2 [L] ce que je désire mais qui ne fonctionne pas: RewriteRule ^-s-([0-9]*).html$ -d-$1.html [L,R=301]RewriteRule ^(.*)-d-([0-9]*).html$ single.php?id=$2 [L] En gros je cherche une redirection grace à l'ID pour delete ce fameux dupplicate !! Il est logique que la deuxième règle ne fonctionne pas. Tu n'as aucune URL qui commence par -s- La première règle est correcte et je ne vois pas ce que tu lui reproche ???
papounet Posté 4 Octobre 2008 Auteur Posté 4 Octobre 2008 Oui je sais que la première règle est correct mais elle ne me sert strictement à rien car toujours dans l'exemple cité j'aurais donc les redirections suivantes: ndd.tld/jeux-nouveautAs-s-122.html vers ndd.tld/jeux-nouveautAs-d-122.html et aussi ndd.tld/jeux-nouveautes-s-122.html vers ndd.tld/jeux-nouveautes-d-122.html J'aurais donc toujours mes urls dupliquées mais avec la variable "d" au lieu de "s" ce qui ne m'avance absolument en rien, c'est pour cela que je souhaite effectuer la redirection a partir de la variable. Donc je voie pas trop comment réussir à faire une tel chose !
Dan Posté 4 Octobre 2008 Posté 4 Octobre 2008 A part en utilisant un RewriteMap, pas de miracle. Et pour cela il faut que ton site soit sur un serveur dédié t'appartenant (il FAUT obligatoirement ajouter cela dans le httpd.conf !)
papounet Posté 5 Octobre 2008 Auteur Posté 5 Octobre 2008 rewritemap Je vais cherché des infos la dessus, sinon pas de soucis je suis sur mon dédié. Merci
Jeanluc Posté 5 Octobre 2008 Posté 5 Octobre 2008 Je ne comprends pas tout ce qui est dit dans ce fil: - pourquoi faut-il remplacer les "-s-" par des "-d-" ? A mon sens, cela ne fait que compliquer les choses. - je suppose que le "A" remplace principalement des "e". Si le A majuscule n'est normalement pas utilisé dans tes URL, tu peux créer une règle qui remplace tout A majuscule par un e minuscule, quitte à ajouter quelques règles particulières pour les cas où "A" remplacerait un "a" ou une autre lettre. Est-ce qu'il y a quelque chose de gros comme une maison qui m'échappe ? Jean-Luc
papounet Posté 5 Octobre 2008 Auteur Posté 5 Octobre 2008 Oui en fait le A est un exemple, car a un moment le rewrite avait une si gros faute qu'il faisait n'importe quoi, des fois il remplaçait par des A,-,--, et d'autres chars bizarre mais dans le fond ton idée n'est pas bête, je vais voir si je peut trouver une certains cohérence et appliquer ta suggestion
Dan Posté 5 Octobre 2008 Posté 5 Octobre 2008 A mon avis, c'est parce que les caractères de l'URL sont codés en UTF-8 ... Tu devrais, s'il n'y a pas trop de liens, utiliser utf8_decode() sur toutes tes URLs pour faire une table de correspondance UTF-8 -> ISO (single byte) Mais là encore ce ne serait pas le "top" car tu aurais des caractères accentués dans l'URL. Donc ensuite, tu auras besoin d'une moulinette supplémentaire pour convertir ces caractères accentués en version pur ASCII é->e, à->a etc... Mais cela ne sera pas possible dans le .htaccess. C'est pour cela que je te suggérais d'utiliser un RewriteMap
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant