Antho66 Posté 16 Mars 2010 Partager Posté 16 Mars 2010 Bonjour, Je reprend un site dont certaines pages sont accessibles à des urls du type: www.exemple.com/?id=10 et www.exemple.com/index.php?id=10 Les 2 urls apparaissant dans Google, et pour éviter le duplicate content, je voudrais créer une redirection 301 depuis la 1ère vers la 2ème. La règle que j'ai testée ne marche pas, à cause semble-t-il du caractère spécial ? même si je l'échappe avec un \ Mon code : RewriteEngine on RewriteRule ^\?id=([0-9]+)$ /index.php?id=$1 [R=301] Quelqu'un a une idée ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Le-juge Posté 16 Mars 2010 Partager Posté 16 Mars 2010 Pourquoi tu utilise pas plutot des URLs Canoniques??? ca me semble plus simple dans l'approche Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 16 Mars 2010 Partager Posté 16 Mars 2010 Ça ne marchait pas parce que tu ne peux pas traiter la query string de cette manière. Essaie ceci: RewriteEngine onRewriteCond %{QUERY_STRING} ^id=RewriteRule ^$ http://www.exemple.com/index.php [L,R=301] Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
Antho66 Posté 17 Mars 2010 Auteur Partager Posté 17 Mars 2010 (modifié) Merci, ca marche parfaitement. Encore une question, je veux ajouter une redirection de /index.php?id=1 et de /?id=1 vers la racine du domaine www.exemple.com. J'ai essayé, mais sans succès : RewriteCond %{QUERY_STRING} ^id=1$ RewriteRule ^$ / [L,R=301] Ainsi si je tape www.exemple.com/?id=1, il me renvoi toujours vers www.exemple.com/index.php?id=1 et non vers www.exemple.com/ Qu'est-ce que ne va pas dans la syntaxe ? Modifié 17 Mars 2010 par Antho66 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Antho66 Posté 17 Mars 2010 Auteur Partager Posté 17 Mars 2010 J'ai trouvé cette solution qui fonctionne : RewriteCond %{QUERY_STRING} ^id=1$ RewriteRule ^.*$ /? [L,R=301] Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jeanluc Posté 17 Mars 2010 Partager Posté 17 Mars 2010 C'est bien ainsi qu'il faut faire avec le ? pour indiquer qu'il ne faut pas reprendre la query string. Jean-Luc Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant