Redir 301 après URL rewriting : je galère !

Nouveau WRInaute
Bonsoir à tous,

Je rencontre une difficulté à mettre en place une redirection 301 après une modif de mon site via url rewriting.
J'ai durant de longues heures (voire journées) parcouru le forum de WRI et google pour trouver des solutions, mais je dois buter sur un problème de syntaxe, ce que je veux faire NE MARCHE PAS.

Bref :

- je possède un site dont les différentes rubriques étaient rubrique.php?id=123 etc. Ces URL étaient indexées par google, de façon excellente pour certaines (PR de 5 pour certaines rubriques). Néanmoins, une url plus parlante ne pouvant qu'être meilleure, j'ai choisi de passer en rewriting.
- mes urls sont désormais de la forme 123-motclédemaBDD.html

L'URL rewriting fonctionne nickel mais évidemment je ne souhaite pas perdre le bénéfice de mon PR (plusieurs dizaines de sites linkent sur mes rubrique.php), ni risquer le duplicate content.

Mais je pêche dans la syntaxe de l'htaccess
Ci-dessous la ligne pour le rewriting, qui fonctionne :

RewriteRule ^([0-9]+)-([-a-z0-9]+)\.html$ rubrique.php?id=1&id=$1 [NC]

Par contre je m'arrache les cheveux avec la ligne pour la redirection 301. J'ai essayé des dizaines de combinaisons, souvent les 2 url sont toujours accessibles mais un test des en-têtes via web-sniffer ou autre me donne HTTP200, et pas le 301 souhaité :(
Je dois me planter avec un ^ un $ ou je ne sais quoi.
Si quelqu'un a une idée sur la bonne syntaxe, il m'enlève une grosse épine du pied. Merci par avance :)
 
WRInaute passionné
dans ces cas je fais une redirection 301 via php au début de la page, en testant la variable $_SERVER['REQUEST_URI'] car je crois qu'il n'est pas possible de récupérer le query_string d'une URL au niveau d'une rewrite rule.

petites remarques :
- tu as du faire une erreur en recopiant ta regle car 2 fois 'id' c'est pas possible
- dans tous les cas, récupérer en GET le mot clé de ton URL c'est inutile, sar tu pourra le faire via une requete SQL directement dans la page.
 
Nouveau WRInaute
effectivement jeroen je me suis planté en recopiant la ligne, la bonne est :

RewriteRule ^([0-9]+)-([-a-z0-9]+)\.html$ rubrique.php?id=$1 [NC]

Si je comprends ton message, ainsi que la solution qu'a trouvée keroin pour son problème, mon salut passe par un bout de code PHP dans ma page, et non par du htaccess ?
Je vais essayer de me pencher là dedans (merci pour le lien ;) ) même si le PHP n'est pas ma tasse de thé :(
 
Discussions similaires
Haut