Version complète: sur le forum Webmaster Hub : les anciennes pages vers les nouvelles, probleme
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Fichier .htaccess et réécriture d'URLs
medjaz
Bonjour tout le monde, c'est mon 1er poste ici smile.gif
j'essaie de renvoyer les anciens url vers les nouveaux par un 301
Le htaccess normale :
CODE
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 :
CODE
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 :
CODE
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é.... sad.gif et tout aide est le bien venue

edit :
J'ai mis ca :
CODE
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
Bobez
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à:

CODE
$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:

CODE
RewriteRule ^page-(.*)-ref-(.*)\.html$ /index.php?page=$1&ref=$2 [L]

Et ça devrait le faire wink.gif
Galeenet
Ca serait plus simple de faire un redirectpermanent doublé d'un rewriterule smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.