Ajouter des arguments sans nuire au référencement

WRInaute discret
Bonjour à tous,

J'ai acctuellement une règle très simple qui passe juste l'id de mes annonces du genre

Code:
RewriteEngine on 
RewriteRule ^annonce-([0-9]+)\.html$ annonce.php?annonce=$1 [L]

Je suis aujoud'hui entrain d'ajouter de nouveaux critères de recherche pour mes annonces, du coup, je voudrais passer de nouvelles variables.

Et faire de ce que j'avais ca :

Code:
RewriteEngine on 
RewriteRule ^annonce-([0-9]+)-([a-z])\.html$ annonce.php?annonce=$1&var=$2 [L]

La question que je me pose est la suivante :
Si je modifie la première règle par la deuxième toutes mes annonces référencées par google, vont se trouver avec une erreur 404. Alors si vous avez une solution, je suis preneur.

A+
 
WRInaute accro
Bonsoir
Il te faudra doubler ceci avec des redirections permanentes. Soit en PHP (peut etre plus facile à mettre en place étant donné l'intrusion de mots dans l'URL, issus sans doute d'une BDD ?) soit par le fichier .htaccess
 
WRInaute discret
Si j'ai bien compris, je dois faire deux règles pour la même page, en attendant que la première ne soit plus utile ?
Ca ne risque pas de me faire une page doublon, aux yeux de google et de ces copains moteurs de recherche ?
 
WRInaute accro
Oui, c'est ça.
Et non ca ne risque pas de faire doublon, l'instruction de la redirection 301 est "cette adresse A a définitivement été redirigée vers l'adresse B", et les moteurs l'interprètent ainsi.
Les anciennes url A seront remplacées, au "niveau" ou elles se trouvent, par les nouvelles url B, progressivement.
La redirection se fait, dans le .htaccess, avec un truc comme ça:
Code:
RewriteRule ^ancienne-url.htm$ http://www.monsite.fr/nouvelle-url.html [QSA,R=301]
 
WRInaute accro
Fait une redirection massive avec PHP.

1° Redirige toute les urls qui contiennent la chaine "annonce-"
2° Met ce code tout en haut de ton script
3° garde le quelques jours le temps de réindexe les nouvelles urls puis enleve le
4° tu peux le pofiner pour qu'il ne prennent pas les urls qui ont deja 2 variables.

++

Code:
<?php
$url = $_SERVER["REQUEST_URI"];
$rel = strstr($url,'annonce-');
if($rel != FALSE) {
header("Status: 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST']."/annonce-".$annonce."-".$var.".html");
}
?>
 
Discussions similaires
Haut