Certaines de mes url ne sont pas réécrite

WRInaute discret
Bonjour,

Je m'occupe du site http://www.ruedelamoto.com depuis peu et j'ai remarqué que toutes les pages du site n'étaient pas correctement réécrite via l'url rewriting.

Exemple avec cette page : http://www.ruedelamoto.com/fiche.php?prod_id=15&cat_id=8&sscat_id=73

Voici ce qui se trouve dans mon fichier .Htaccess :

Code:
RewriteEngine On
RewriteRule   ^produit-([0-9]*).*$   /fiche.php?prod_id=$1
RewriteRule   ^produits-categorie-([0-9]*).*$   /liste.php?cat_id=$1
RewriteRule   ^rayon-([0-9]*)-produits-categorie-([0-9]*).*$   /liste_detail.php?sscat_id=$1&cat_id=$2

Si je modifie l'url rewriting pour les url qui pose problème, est ce que cela va affecter leur référencement sur Google, ou est ce que le moteur de recherche fais la liaison entre l'ancienne et la nouvelle écriture ?

Merci d'avance
 
WRInaute discret
Salut,

Excuse moi mais j'ai encore un peu de mal à paramétrer les fichiers .Htaccess. Pourrais tu me dire ce que ca donne ?

merci
 
WRInaute discret
bonjour
si j'ai bien compris tu doit ajouter une ligne

Code:
RewriteEngine On
RewriteRule   ^produit-([0-9]*).*$   /fiche.php?prod_id=$1
RewriteRule   ^produit-([0-9]+)-([0-9]+)-([0-9]+).*$   /fiche.php?prod_id=$1&cat_id=$2&sscat_id$3   
RewriteRule   ^produits-categorie-([0-9]*).*$   /liste.php?cat_id=$1
RewriteRule   ^rayon-([0-9]*)-produits-categorie-([0-9]*).*$   /liste_detail.php?sscat_id=$1&cat_id=$2

avec ce ligne "RewriteRule ^produit-([0-9]+)-([0-9]+)-([0-9]+).*$ /fiche.php?prod_id=$1&cat_id=$2&sscat_id$3 "

le format de lien fiche.php?prod_id=15&cat_id=8&sscat_id=73 ===> produit-15-8-73.html


En avance un peut :
Code:
RewriteEngine On
RewriteRule   ^produit-(.*)-([0-9]*).*$   /fiche.php?prod_id=$2
RewriteRule   ^produit-(.*)-([0-9]+)-([0-9]+)-([0-9]+).*$   /fiche.php?prod_id=$2&cat_id=$3&sscat_id$4   
RewriteRule   ^produits-categorie-(.*)-([0-9]*).*$   /liste.php?cat_id=$2
RewriteRule   ^rayon-([0-9]*)-produits-categorie-([0-9]*).*$   /liste_detail.php?sscat_id=$1&cat_id=$2

maintenant avec ce code

RewriteRule ^produit-(.*)-([0-9]*).*$ /fiche.php?prod_id=$2 ===> produit-nomdeproduitbalbla-15.html
RewriteRule ^produit-(.*)-([0-9]+)-([0-9]+)-([0-9]+).*$ /fiche.php?prod_id=$2&cat_id=$3&sscat_id$4 ===> produit-balbalala-15-8-73.html
RewriteRule ^produits-categorie-(.*)-([0-9]*).*$ /liste.php?cat_id=$2 ====> produits-categorie-balblalo-25.html


(.*) : toutes les caractères ( au moins 0 caractère)
[0-9]* : toutes les nombres ( au moins 0 nombre )
[0-9]+ : toutes les nombres ( au moins 1 nombre )

Et en fin il faut changé les liens dans ton code php au format correspond à ton code htaccess

avec ce code php tu règle le problème de format de lien ( bal " élop ===> bal-elop )

Code:
function nettoyage($text) 
{ 
   $separator = "-"; 
   $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ"; // Lettre accentuées 
   $replac = "aaaaaaooooooeeeeciiiiuuuuyn"; // Equivalent non accentué 
   $text = strtr(strtolower($text),$tofind,$replac); 
   $text = ereg_replace("[^a-z0-9.]", $separator, $text); 
   while (strstr($text, $separator . $separator)) 
      $text = str_replace($separator . $separator, $separator, $text); 
   if (substr($text, 0, 1) == $separator) 
      $text = substr($text, 1); 
   return(ereg_replace($separator . "$", "", $text)); 
}

@+
 
WRInaute discret
Merci pour ta réponse. ;)

j'ai néanmoins quelques questions :

J'ai bien compris qu'il faillait que je rajoute une ligne dans mon Htaccess qui est la suivante :

Code:
RewriteRule   ^produit-(.*)-([0-9]+)-([0-9]+)-([0-9]+).*$   /fiche.php?prod_id=$2&cat_id=$3&sscat_id$4

Par contre peux tu m'expliquer pourquoi il faut changer dans les ligne qui existaient déjà le numéro de l'id ? En effet à l'origine les id étaient à 1 ou 2 et dans ce que tu me propose tous les id sont a 2 ou 4 ?

Deuxièmement le code qui permet de résoudre les problèmes de format de liens, je dois le placer dans fiche.php ?

Merci ;)
 
WRInaute accro
Tu ajoute ça devant l'autre ligne redirigeant les fiche
Code:
RewriteRule ^produit-([0-9]*)-cat-([0-9]*)-sscat-([0-9]*).*$ /fiche.php?prod_id=$1&cat_id=$2&sscat_id=$3 [R=301]

A toi de modifier les "cat" et "sscat" dans l'Url que tu souhaite avoir.

Tu peux me^me simplifier en mettant tout les chiffres à la suite.
Code:
RewriteRule ^produit-([0-9]*)-([0-9]*)-([0-9]*).*$ /fiche.php?prod_id=$1&cat_id=$2&sscat_id=$3 [R=301]
 
WRInaute discret
Rod la Kox a dit:
Tu peux me^me simplifier en mettant tout les chiffres à la suite.
Code:
RewriteRule ^produit-([0-9]*)-([0-9]*)-([0-9]*).*$ /fiche.php?prod_id=$1&cat_id=$2&sscat_id=$3 [R=301]

Ok j'ai bien compris, mahdivitchee me propose la même chose que toi :

Code:
RewriteRule   ^produit-(.*)-([0-9]+)-([0-9]+)-([0-9]+).*$   /fiche.php?prod_id=$2&cat_id=$3&sscat_id$4

Par contre pouvez vous m'expliquer pourquoi vos id sont différents selon vos proposition. Qu'est ce que cela change ?
 
WRInaute discret
winsa a dit:
Code:
RewriteRule   ^produit-(.*)-([0-9]+)-([0-9]+)-([0-9]+).*$   /fiche.php?prod_id=$2&cat_id=$3&sscat_id$4

Par contre peux tu m'expliquer pourquoi il faut changer dans les ligne qui existaient déjà le numéro de l'id ? En effet à l'origine les id étaient à 1 ou 2 et dans ce que tu me propose tous les id sont a 2 ou 4 ?

Bonjour

le id selon le nombres des paramètres qui tu as peut être 1 ou 2 ou 10 ....
dans les exemple (.*) ==> 1 - ([0-9]+) ===> 2 ([0-9]+) ===> 3 - ([0-9]+)===> 4



winsa a dit:
Deuxièmement le code qui permet de résoudre les problèmes de format de liens, je dois le placer dans fiche.php ?
Merci ;)

oui bien sur

mais tu doit appeler à cette fonction dans l'affichage des produits

while($read=mysql_fetch_array($req))
{
$url=nettoyage($read["titre"]);
}


bonne journée
 
WRInaute accro
winsa a dit:
Ok j'ai bien compris, mahdivitchee me propose la même chose que toi
Ah bah nan parce que lui...

winsa a dit:
Par contre pouvez vous m'expliquer pourquoi vos id sont différents selon vos proposition. Qu'est ce que cela change ?
Lui, il se plante.

Tu n'as que 3 paramètres à faire passer d'ou $1, $2, $3.
Et de plus j'intègre le paramètre 301.

:wink:
 
WRInaute discret
Rod la Kox a dit:
Lui, il se plante.

Tu n'as que 3 paramètres à faire passer d'ou $1, $2, $3.
Et de plus j'intègre le paramètre 301.

:wink:

Oki, et dans ce cas il faut aussi que je rajoute du code dans mon fichier Fiche.php pour gérer les caractère spéciaux ?
 
Discussions similaires
Haut