Problème URL rewriting avec query string

Nouveau WRInaute
Bonjour,

après avoir lu beaucoup de billets à ce sujet sur le forum, toutes les solutions proposées n'ont pas fonctionné, donc je me permets de demander de l'aide.

J'ai fais un rewriting de mes pages, par exemple : "index_fr.php?p=toto" vers "toto.html".

Mais mes pages type "index_fr.php?p=toto" sont déjà indéxés sur google donc je souhaite faire un rewriting de ces pages déja indexées.

Donc j'ai placés le code suivant en tout début de .htacces:
Code:
RewriteCond %{QUERY_STRING} p=(.*)
RewriteRule ^index_fr\.php$   %1

RewriteRule toto$   /fr/page/toto.html? [R=301]

Cela prend bien en compte la nouvelle adresse mais m'affiche une erreur "Redirection de page incorrecte". Cela ne prend plus en compte mon code de rewriting qui suit :
Code:
RewriteRule ^(fr|en)/page/toto\.html /index_$1.php?p=toto [L]

SI quelqu'un peut m'aider à résoudre ce problème. Merci.
 
WRInaute discret
et si tu essayes avec quelque comme ça
Code:
RewriteEngine on 
RewriteRule ^index_([0-9a-zA-Z]+).php?p=([0-9a-zA-Z]+)$ /$1/page/$2.html [R=301,L]
 
Nouveau WRInaute
fabor a dit:
et si tu essayes avec quelque comme ça
Code:
RewriteEngine on 
RewriteRule ^index_([0-9a-zA-Z]+).php?p=([0-9a-zA-Z]+)$ /$1/page/$2.html [R=301,L]

Cela ne fonctionne pas. J'avais testé comme cela auparavant.
 
WRInaute passionné
si tu as une règle de rewriting + une redirection 301 ça boucle. Pour éviter cela il faut ajouter un paramètre bidon :
Code:
RewriteCond %{QUERY_STRING} ^p=([^&]*)$
RewriteRule ^index_(fr|en)\.php$   /$1/page/%1.html? [R=301] 
RewriteRule ^(fr|en)/page/(.*)\.html /index_$1.php?p=$1&rewrite [L]
 
Nouveau WRInaute
Ca y est, c'est a peu pres ce qu'on afait:
Code:
RewriteCond %{QUERY_STRING} !r
RewriteCond %{QUERY_STRING} p=(.*)$
RewriteRule ^index_fr\.php$   %1
RewriteRule toto$   /fr/page/toto.html? [L,R=301]

RewriteRule ^fr/page/toto\.html  /index_fr.php?p=toto&r [L]

Merci beaucoup pour votre aide
 
Discussions similaires
Haut