Nouveau WRInaute
Bonjour!
J'ai un site qui tourne sous Wordpress. Certaines pages ont des URLs du type : /infos/?user=xy (un chiffre)
Pour une raison que j'ignore, Googlebot a décidé il y a quelques temps de crawler des pages du genre :
/infos/?user=x&user=y
ou encore:
/infos/?user=x&user=y&user=z (jamais plus de 3 occurences de user - aucune idée de la raison car aucun lien ne pointe sur ce genre de pages)
Problème : la page de la dernière valeur de 'user' s'affiche et renvoie un header 200 (dû je pense à Wordpress). Donc, j'ai du "contenu dupliqué".
Je voudrais faire un URL rewriting couplé à un redirect 301 pour qu'à chaque fois, ce soit la page correspondante à la dernière valeur de user + un header 301 qui soient retournés.
J'ai donc modifié mon .htaccess qui ressemble maintenant à ceci :
Ca ne fonctionne pas! C'est un header 200 qui est retourné.
J'ai tenté des variantes :
- mettre les rewriterules à la fin du htaccess
- dans la première partie des rewriterules, ne pas escaper les caractères spéciaux par des \
Auriez-vous une idée de ce qui ne va pas ?
Merci par avance!
A vous lire,
J'ai un site qui tourne sous Wordpress. Certaines pages ont des URLs du type : /infos/?user=xy (un chiffre)
Pour une raison que j'ignore, Googlebot a décidé il y a quelques temps de crawler des pages du genre :
/infos/?user=x&user=y
ou encore:
/infos/?user=x&user=y&user=z (jamais plus de 3 occurences de user - aucune idée de la raison car aucun lien ne pointe sur ce genre de pages)
Problème : la page de la dernière valeur de 'user' s'affiche et renvoie un header 200 (dû je pense à Wordpress). Donc, j'ai du "contenu dupliqué".
Je voudrais faire un URL rewriting couplé à un redirect 301 pour qu'à chaque fois, ce soit la page correspondante à la dernière valeur de user + un header 301 qui soient retournés.
J'ai donc modifié mon .htaccess qui ressemble maintenant à ceci :
Code:
RewriteEngine On
RewriteBase /
# Merci Google
RewriteRule ^infos\/\?user\=(.*)\&user\=(.*)\&user\=(.*)$ /infos/?user=$3 [R=301,L]
RewriteRule ^infos\/\?user\=(.*)\&user\=(.*)$ /infos/?user=$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Ca ne fonctionne pas! C'est un header 200 qui est retourné.
J'ai tenté des variantes :
- mettre les rewriterules à la fin du htaccess
- dans la première partie des rewriterules, ne pas escaper les caractères spéciaux par des \
Auriez-vous une idée de ce qui ne va pas ?
Merci par avance!
A vous lire,