Aller au contenu

Sujets conseillés

Posté

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é (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é par Bobez

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...