Aller au contenu

Sujets conseillés

Posté

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 ?

Posté

Pourquoi tu utilise pas plutot des URLs Canoniques??? ca me semble plus simple dans l'approche

Posté

Ça ne marchait pas parce que tu ne peux pas traiter la query string de cette manière.

Essaie ceci:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=
RewriteRule ^$ http://www.exemple.com/index.php [L,R=301]

Jean-Luc

Posté (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é par Antho66
Posté

J'ai trouvé cette solution qui fonctionne :

RewriteCond %{QUERY_STRING} ^id=1$

RewriteRule ^.*$ /? [L,R=301]

Posté

:thumbsup: C'est bien ainsi qu'il faut faire avec le ? pour indiquer qu'il ne faut pas reprendre la query string.

Jean-Luc

Veuillez vous connecter pour commenter

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



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