Version complète: sur le forum Webmaster Hub : Redirection de liens internes
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Scripts et utilitaires
e-atlantide
J’ai réécrit tous les url de mon annuaire.
La conséquence est que sur Yahoo notamment mes liens sont indexés avec l’ancien format (index.php?cat_id=).
Je recherche un script qui permettrait de rediriger l’ancien lien vers le nouveau lien (en utilisant une liste exhaustive).

Connaissez-vous un script qui répond à ce besoin ?

D’avance merci.
rottman
CODE
<?php
if(isset($_GET["cat_id"])){
header("Status: 301 Moved Permanently");
header("Location: index-cat-".$_GET["cat_id"].".html");
exit();
}
?>
e-atlantide
CITATION(rottman @ vendredi 11 mars 2005, 14h13)
CODE
<?php
if(isset($_GET["cat_id"])){
header("Status: 301 Moved Permanently");
header("Location: index-cat-".$_GET["cat_id"].".html");
exit();
}
?>

*


Je viens juste de voir ta réponse (je n’avais pas activé l’option notification par mail).
Ton script est intéressant mais il a besoin d’être adapté à mon besoin. Je suis novice en php.
Comment puis-je modifier ce code pour mettre en place un liste de redirection ?
Par exemple rediriger :
index.php?cat_id=10 vers martinique-10.htm
index.php?cat_id=168 vers pays-bas-168.htm
index.php?cat_id=74 vers polynesie-française-74.htm
...

D’avance merci
rottman
mmmh... Pour ça ça va etre trop compliqué...
e-atlantide
Et si mets quelque chose de ce type :

CODE
<?php
if(isset($_GET["cat_id"] == 10)){
header("Status: 301 Moved Permanently");
header("Location: martinique-10.htm");
exit();
}
if(isset($_GET["cat_id"] == 168)){
header("Status: 301 Moved Permanently");
header("Location: pays-bas-168.htm");
exit();
}
if(isset($_GET["cat_id"] == 74)){
header("Status: 301 Moved Permanently");
header("Location: polynesie-française-74.htm");
exit();
}
?>


Est-ce c'est viable ?
rottman
Oui ça devrait marcher.
Megachercheur
CITATION(e-atlantide @ vendredi 11 mars 2005, 10h54)
J’ai réécrit tous les url de mon annuaire.


Personnellement je n'ai jamais réécris les miens, car je constate que les moteurs les lisent très bien. Il n'y a jamais plus de deux paramètres (la catégorie ou sous-catégorie, et la page). Il est vrai qu'il y a quelques années, on disait que les moteurs avaient du mal à avaler les Url d'annuaires. Mais aujourd'hui, pourquoi s'embêter ? wacko.gif
e-atlantide
CITATION(Megachercheur @ dimanche 20 mars 2005, 07h49)
Mais aujourd'hui, pourquoi s'embêter ?  wacko.gif
*


Je constate que les annuaires qui disposent d'un PR élevé ont généralement mis en place l'url-rewriting.
De plus, tu peux mettre aussi des mots clés dans tes liens et sans mettre des caractères spéciaux.
e-atlantide
CITATION(rottman @ samedi 19 mars 2005, 13h14)
Oui ça devrait marcher.
*


J'ai mis ce code :
CODE
if ($_GET['cat_id'] == '156') {
header("Status: 301 Moved Permanently");
header("Location: photographe-156.htm");
exit();
}

Cela ne fonctionne pas. J'ai l'impression qu'il y a une boucle pour ce cat_id.
Les autres liens de l'annuaire fonctionnent correctement.

Je ne comprends pas.

Le début du fichier index.php de myphpannuaire est

CITATION
<?php
//page principale de l'annuaire

include("data_bd_annuaire.php"); //variables de l'annuaire
include("functions.php"); //fonctions de l'annuaire

$cat_id = isset($_GET['cat_id']) ? (int)$_GET['cat_id'] : 0;
if($cat_id < 0)
exit;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 0;
if($page < 0)
exit;
if (empty($cat_id))
{
$sql_nbsites = "SELECT id FROM $T_sites WHERE activation = '1' ";
$sql_nbcats = "SELECT id FROM $T_categories WHERE activation = '1' ";
$sql_cat = "SELECT id,cat_name FROM $T_categories WHERE id_cat_mere = '0' AND activation = '1' ORDER BY cat_name ASC";
$sql_admin = "SELECT nb_scats_on_index FROM $T_infos ";
$lk = connection_BD();
}
else
{
$sql_infos = "SELECT nb_sites_on_page,nb_days2benew FROM $T_infos ";
$lk = connection_BD();
$sql_descr = "SELECT cat_name, texte FROM $T_categories WHERE id = '$cat_id' ";
$sql_scat = "SELECT id, cat_name FROM $T_categories WHERE id_cat_mere = '$cat_id' AND activation = 1 ORDER BY cat_name ASC";
$res_descr = send_sql($sql_descr,"trouver la description de cette catégorie");
}
if ($_GET['cat_id'] == '156') {
header("Status: 301 Moved Permanently");
header("Location: photographe-156.htm");
exit();
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
e-atlantide
En fait, cela ne peut pas fonctionner car le résultat est une boucle.

Mais, j'ai enfin réussi à supprimer mes anciens liens avec variables dans google grâce à un système automatique de suppression d'URL en 24 heures proposé par GG.
rottman
En faite,

Après le } il aurait fallut faire un else { }
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.