Url rewriting d'url déja rewritées

WRInaute discret
Bonjour,

j'ai changer la gestion de mon rewriting en updatant le script de base de mon site.

Je n'ai pas réussi a rediriger les anciennes urls rewritées (qui fonctionnent toujours) vers les nouvelles.

anciennes url : 27_44_fr.html
nouvelles : content/27/44/fr/trouver-une-location-saisonniere-sur-internet.html

Comment feriez vous ?

Rediriger ces anciennes urls rewritées vers la page d'accueil du site solutionne t'il le problème ?

Merci !
 
WRInaute discret
Est-ce que les anciennes URL sont toujours fonctionnelles ? Si oui, le souci que tu peux peut-être rencontrer c'est le duplicate content, si à la fois la nouvelle et l'ancienne URL d'une page sont valides et mènent à cette page.

Pour éviter ça, il faudra faire des redirections (redirection HTTP 301 à priori) de chacune de anciennes URL vers les nouvelles. L'idéal serait de pouvoir faire des redirections en fonction d'un schéma, un peu comme pour l'URL rewriting...
 
WRInaute discret
j'ai essayé de faire des redirections vers les nouvelles pages... je n'ai pas réussi.

Si je les redirige en 301 vers la page d'acceuil, comment google le comprendra ?

merci
 
WRInaute discret
maximee a dit:
Si je les redirige en 301 vers la page d'acceuil, comment google le comprendra ?
En gros, tu diras à Google & co que toutes tes pages (probablement déjà indexées avec les anciennes URL) sont devenues la page d'accueil. Je ne sais pas quelles seraient exactement les conséquences, mais ça n'a pas l'air d'être une super bonne idée.
 
WRInaute discret
Il faut simplement une premiere ligne avec une 301 ancienne url => nouvelle url, puis une rewrite rule nouvelle url => page réelle

Par exemple :

Code:
RewriteRule ^ancienne.html$ /nouvelle.html [R=301]
RewriteRule ^nouvelle.html$ /reel/reel.php [L]
 
WRInaute discret
Concretement voici mon htaccess :

Anciennes url :
Code:
RewriteCond %{REQUEST_URI}              ([0-9]+)_([0-9]+)_([a-z\-]+)\.html$ [NC]
RewriteRule ^(.*)_(.*)_(.*)\.html$      index.php?action=artikel&cat=$1&id=$2&artlang=$3 [L,QSA]

Nouvelles urls :
Code:
RewriteRule content/([0-9]+)/([0-9]+)/([a-z\-]+)/(.+)\.htm(l?)$     index.php?action=artikel&cat=$1&id=$2&artlang=$3 [L,QSA]

Quel code dois je insérer pour une redirection des anciennes vers les nouvelles ?

thx
 
Nouveau WRInaute
bonjour,
j'ai quasiment le même problème que toi:
'ai mis en place une règle de réecriture qui prend le nom dans ma base et son id et réecris l'url.
cela donne par exemple:
per-metallique-p312.html
En réalité l'adresse est page.php?article=312
Recemment,j'ai modifié le catalogue ( les noms, id ....). Ceci à donc générés de nouvelles adresses qui ont modifiées les url :
j'avais ainsi par exemple avant:per-metallique-p312.html
et maintenant j'ai per-metal-venise-p312.html
Mon problème est que les anciennes url sont encore référencés sur google et renvoye vers l'ancienne url.
Je me retrouve avec deux adresses pour le même contenu ( ou un contenu très légèrement diffèrent).
est il possible donc de redirigées l'ancienne url vers la nouvelle url?
j'ai fais ceci sans succès:

Code:
RewriteRule^per-metallique-kit-p312.html$ per-metallique-beni-p312.html [R=301] RewriteRule ^per-metallique-beni-p312.html$ page.php?art=312 [L]

Par la suite j'ai fais:

Code:
redirect /per-metallique-kit-p312.html "http://www.monsite/per-metallique-beni-p312.html"

ca fonctionne mais ca me renvoye dans google le lien suivant:
http://www.monsite/pergola-metalliqu...-p312.html?312
Cette solution est elle convenable ?
savez vous si google prend en compte le ?312 ou si il prend en compte juste l'adresse html ?

En ayant regardé un peu partout, j'ai l'impression qu'il n'y a que la deuxième solution de partiellement satisfaisante ...
merci
 
WRInaute accro
vous faite votre nouvelle redirection dans le fichier .htacces sans vous souciez du reste,
puis dans votre script php, c'est la que vous rediriger les anciens urls vers les nouveaux urls

Dans le genre ::

Code:
$uri = $_SERVER["REQUEST_URI"]; 

$rel = strstr ($uri,'/per-metallique-p312.html');
if($rel != FALSE)
      {
$uri1  =  str_replace("metallique","metal-venise",$uri);
header("Status: 301 Moved Permanently");
header("Location: http://www.tonsite.com$uri1");
      }

Besoin de + d'explications : demandez :D
 
WRInaute discret
Pour revenir sur la solution que j'ai appliquée, j'ai renvoyé mes anciennes url rewritées vers un 404 puis je les ai supprimées de l'index google, c'est fastidieux mais ça a fonctionné :).
 
Discussions similaires
Haut