Reverse URL Rewriting

WRInaute occasionnel
Salut,

Je lutte depuis quelque temps pour faire une regle de réécriture inverse. Je m'explique :
J'ai actuellement la règle de réécriture suivante :
Code:
RewriteRule ^l_([0-9]*)_([0-9]*)\.html livre.php?s=$1&n=$2
néanmoins le FreshBot continue à visiter les anciennes URL. Je cherche donc à rediriger les anciennes URL vers les nouvelles. Pour ça j'ai testé sans succes çà :
Code:
RewriteRule ^livre\.php\?s=([0-9]*)&n=([0-9]*)  l_$1_$2.html [R]

J'ai l'impression que mon problème viens des paramètres dans la première URL. J'ai donc pensé passer par une redirection conditionnelle
Code:
RewriteCond  %{QUERY_STRING}  ^s=([0-9]*)&n=([0-9]*)
Mais alors pas moyen de récuperer les valeurs des variables pour la réécriture ...

Avez vous des idées ? ou un topic identique ?

Mirgolth
 
WRInaute discret
Ce ne serait pas plus simple que dans ton robots.txt tu interdises l'indexage de livre.php

Code:
disallow /livre.php

C'est ce que j'ai fait sur mon forum phpBB pour eviter que google continue a allez sur les anciennes url, et ca marche trés trés bien. Il index bien les .html mais il ne passe plus sur les .php que je lui interdis.
 
WRInaute passionné
Mirgolth,

La proposition de BDGest me semble préférable, car elle est plus facile à mettre en place et bien comprise par les moteurs.

La réécriture inverse que tu souhaites, impose l'envoi d'un header 301 (moved permanently) qui passe obligatoirement par une redirection externe, ce qui signifie l'ajout du flag [R=301,L] et l'utilisation en second argument du RewriteRule de l'URL complète (http://.....)

Une fois cette redirection effectuée, si ta règle est correcte, il y aurait donc une deuxième requête, cette fois pour le nouveau format l_xxx_xxx.html qui serait à son tour réécrit en livre.php?xxx
(je n'ai plus ton post sous les yeux donc j'invente les paramètres :wink: )

Cela fait beaucoup d'aller/retour pour pas grand chose, même si cela peut marcher sur un plan théorique. Je ne sais pas à quel moment de la chaîne un HIT est comptabilisé, mais cela peut jouer aussi en doublant les hits (je vais me renseigner sur ce point, je n'ai pas toute la doc Apache en tête :wink: )

Dan
 
WRInaute occasionnel
Bon d'accord,

Je vais faire comme ça. Mais ça fait toujours mal au coeur de dire à G. de ne pas indexer des pages...

Mirgolth
 
WRInaute discret
Ben les pages seront indexées en passant par les adresses en .html :wink:
Donc aucun problème.
 
WRInaute occasionnel
J'ai voulu faire récemment le même genre de manipulation que celle décrite par Mirgolth.
Mais je me suis embrouillé quelque part, et une demi-heure de tests et quelques erreurs 500 plus tard, je me suis rendu compte que j'avais augmenté de 15000 hits :?

:arrow: Les tests se sont terminés là.

Une solution radicale, c'est renommer les fichiers PHP, comme ça ils ne seront plus trouvés. Mais alors bonjour les erreurs 404 :cry:

Jocelyn
 
Discussions similaires
Haut