Problème de syntaxe dans ma redirection 301 htaccess ?

WRInaute impliqué
Bonjour tout le monde,


Dans mon htaccess, j'ai essayé de configurer une redirection 301 qui ressemble à ça :

Code:
RewriteRule ^exemple1%7Cexemple2%7Cexemple3,ID.html$  /exemple1;~;exemple2;~;exemple3,ID.html  [QSA,L,R=301]

En gros, je veux remplacer "%7C" par ";~;".
Comme j'ai beaucoup d'url de ce type à rediriger, je passe par le fichier htaccess car ça me paraît plus simple.
Toutefois, quand je demande l'ancienne url, la page s'affiche normalement et la redirection ne fonctionne pas (bonjour le duplicate content...).

Voyez-vous où se trouve l'erreur ?
 
WRInaute accro
"%1" est utiliser par le moteur rewrite pour recuperer des valeurs venues d'une capture. Si tu l'inclu dans tes regles, ca ne marchera pas. Idem pour %2, %3...

solution =>> PHP

Code:
<?php
if(ereg("exemple1%7Cexemple2",$_SERVER['REQUEST_URI'])==1) {
$uri = $_SERVER['REQUEST_URI']; //recupere l'url
$uri  =  str_replace("%7C",";~;",$uri); // remplace
header("HTTP/1.1 301 Moved Permanently");  // redirection 301 
header("Location: ".$_SERVER['HTTP_HOST']."".$uri."");  // nouvelle adresse 
} 
?>
 
Discussions similaires
Haut