Duplication de contenu : redirection 301

WRInaute occasionnel
Bonjour à tous,
Je possède ce site : http://monsite.fr/ dont l'url est référencée par google. Mon problème est que la page en question (index de mon site) est aussi accessible (et référencée) sur Google via l'url : http://monsite.fr/?s

J'aimerai redirigé l'url avec ?s à la fin, vers l'url propre pour que Google déréférence l'url pas propre et pour éviter une duplication de contenu.

J'ai tester RedirectPermanent /?s http://monsite.fr/
Mais cela ne marche pas.

D'avance merci !
 
WRInaute occasionnel
J'ai déjà dans mon htaccess :

Code:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Qui doit si je ne me trompe réécrire l'url "monsite/index.php" en "monsite"

Si j'ajoute à ce petit module juste la condition suivante :
Code:
RewriteCond %{QUERY_STRING} ^?s$
Ce qui donne donc :
Code:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} ^?s$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

J'obtiens une erreur 500 quand j'essaie d'accéder à mon site. Pourtant, la ligne que je rajoute est correcte nan ?
 
WRInaute impliqué
Attention, on ne fait pas n'importe quoi avec les RewriteCond, ça a un fonctionnement spécifique.
Essaie ceci :
Code:
RewriteCond %{QUERY_STRING} ^s$
RewriteRule .* / [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Le "?" est considéré comme un caractère spécial dans l'expression.
Ici, il ne faut pas le spécifier, le "?" ne sert qu'à séparer l'URL des paramètres et n'est donc pas présent dans %{QUERY_STRING}.
 
WRInaute occasionnel
ok j'ai donc (.htaccess entier) :

Code:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

RewriteCond %{QUERY_STRING} ^s$
RewriteRule .* / [L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

RedirectPermanent /19-novembre-2010-2/ http://webmark.romdev.fr/19-novembre-2010/

Lorsque j'essaie d'acceder à http://webmark.romdev.fr/?s je tombe sur "Error 500 - Internal server error"
 
Discussions similaires
Haut