medjaz Posté 22 Juin 2007 Posté 22 Juin 2007 Bonjour tout le monde, c'est mon 1er poste ici j'essaie de renvoyer les anciens url vers les nouveaux par un 301 Le htaccess normale : RewriteRule ^page-(.*)-ref-(.*)\.html$ /index.php?page=$1&ref=$2 [L] ca marche impec sauf que chaque page est encore accessible par son encien url. et lorsque je fait : RewriteRule ^page-(.*)-ref-(.*)\.html$ /index.php?page=$1&ref=$2 [L,R=301] J'ai l'inverse ca me renvoie vers l'ancienne page alors je l'inverse comme ca : RewriteRule ^index.php?page-(.*)&ref=(.*)$ /page-(.*)-$2.html [R=301]RewriteRule ^page-(.*)-ref-(.*)\.html$ /index.php?page=$1&ref=$2 [L] Mais rien ca marche pas. Je suis bloqué.... et tout aide est le bien venue edit : J'ai mis ca : RewriteCond %{QUERY_STRING} ref=([0-9]+)RewriteRule ^(.*)$ http://www.site.com/page-mot1-mot2-ref-%1.html [L,R=301] sa redirige vers cette url : -http://www.site.com/page-mot1-mot2-ref-112.html?page=mot1-mot2&ref=112 et non pas comme ca : -http://www.site.com/page-mot1-mot2-ref-112.html
Guest Bobez Posté 23 Juin 2007 Posté 23 Juin 2007 (modifié) J'avoue que je ne vois pas trop de solution en url rewriting (même si, à mon avis, il doit y en avoir une). Par contre, si tu ne trouves pas d'autre solution, tu peux régler le problème directement dans ta page php, avec un code de ce goût-là: $url = '/page-mot1-mot2-ref-'.$_GET['ref'].'.html';if ($url!=$_SERVER['REQUEST_URI']) { header("Status: 301 Moved Permanently"); header("Location: http://www.ton-domaine".$url); exit();} Comme ça, cela empêche d'accéder aux pages via leur ancienne url. Dans ton htaccess, tu ne gardes que cette règle: RewriteRule ^page-(.*)-ref-(.*)\.html$ /index.php?page=$1&ref=$2 [L] Et ça devrait le faire Modifié 23 Juin 2007 par Bobez
Galeenet Posté 23 Juin 2007 Posté 23 Juin 2007 Ca serait plus simple de faire un redirectpermanent doublé d'un rewriterule
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant