Aller au contenu

Sujets conseillés

Posté

Salut à tous,

Je commence à m'interessé sérieusement au référencement et du coup à l'url rewriting.

J'ai sur mon site des pages produit.php?idproduit=xx&technique=xx que j'ai modifier en produit-xx-xx.html mais il me semble qu'avoir une url du type nom-du-produit.html serait plus pertinent. Du coup, je souhaiterais savoir comment faire pour arriver à un tel résultat ?

Si quelqu'un peut me mettre sur une piste ;)

Merci

Posté

Bonjour,

Je ne suis pas sur que supprimer l'id de ton produit dans l'url soit une bonne id (arf...)

Lorsque ton url sera du style nom-du-produit.htm,

il suffira de se baser non plus sur l'id pour récupérer les infos dans la bdd mais sur le champ "nom du produit".

Si tu as beaucoup de produits dans ta bdd, c'est le début des galères :)

et les risques de problèmes sont nombreux. Sans parler de la question des performances...

Quoi qu'il en soit je l'ai déjà fais sur un site est cela fonctionne bien.

Posté

Comme KaRaK, je l'ai mis en place sur un site et ça fonctionne parfaitement aussi, et c'est beau (faut quand même l'avouer ! :)).

Ca fait faire une requete en plus par page de produit pour retrouver le produit et toutes ces infos. Le seul inconvénients, c'est qu'il ne faut surtout pas que deux produits aient le même nom, sinon ça va merder.

Ce que je fais moi :

// on essai de trouver le produit. On prends tous les produits de la base ...
$sql = "SELECT `produit_id`, `produit_nom`
 FROM `".PRODUIT_TABLE."`";
$req = $db->sql_query($sql);
while($data = $db->sql_fetcharray($req))
{
// ... et on regarde si il y en a un qui correspond avec l'url
// clean_url permet de virer les accents et les caractères que les urls n'aiment pas
if(clean_url($data['produit_nom']) == $_GET['p'])
{
 $prod = $data['produit_id'];
 $titre = $data['produit_nom'];
 // il correspond, on sort de la boucle et on dit qu'on a trouvé le produit
 $ok = 1;
 break;
}
}

Si ça peut t'aider ;)

Posté

Salut,

J'ai réceemment fait du rewrite.

L'id c'est de trouver une expression reguliere avec tes propres regles.

Moi j'ai fais quelques choses du style /<Id_poduit>/<libelle_prod>.html

Je redirige vers <url_site>/boutik/produit.php?Id=$1

Le libelle étant utile juste pour le référencement, ça donne des pages avec le titre du produit!

Voila :)

Ll'id du produit doit toujours ce retrouver dans l'url d'une façon ou d'une autre, quitte à compléter avec des zéros ou ajouter un mot de qqs lettres aléatoires mais qui ne seront pas traités.

Posté (modifié)

Merci de vos conseil, je vais essayer tout ça.

Afin d'améliorer le referencement et de faciliter le traitement je peux avoir une url du type : nomduproduit-refproduit.html non ?

Par contre je ne sais pas trop comment le mettre dans mon htaccess. Pour l'instant j'ai ça

RewriteRule ^produit-([0-9]+)-([0-9]+)\.html$ produit.php?idproduit=$1&technique=$2 [L]

mais ça ne prend en compte que les chiffres

Modifié par udufru
Posté (modifié)

Bon j'ai avancé un peu j'ai maintenant une url du type nom-du-produit-refproduit.html l'url s'affiche bien mais me retourne une erreur 404. Je sais que cela viens de mon htaccess mais je ne sais pas comment corriger

RewriteRule ^([a-z]+[0-9]+)-([0-9]+)-([0-9]+)\.html$ produit22.php?idproduit=$2&technique=$3&nomproduit=$1 [L]

Modifié par udufru
Posté

Bon j'avance petit à petit j'ai trouvé mon erreur sur ma ligne ci-dessus

il fallait mettre :

RewriteRule ^([a-zA-Z0-9+]+)-([0-9]+)-([0-9]+)\.html$ produit22.php?idproduit=$2&technique=$3&nomproduit=$1 [L]

Bon le problème maintenant c'est que j'ai des produit avec un - dans le nom et la du coup ça ne marche pas pour cela.

Une idée ?

Posté
Merci de vos conseil, je vais essayer tout ça.

Afin d'améliorer le referencement et de faciliter le traitement je peux avoir une url du type : nomduproduit-refproduit.html non ?

Bonjour,

Je pense que le mieux est de faire refproduit-nomduproduit.html meme si cela ne change surement pas grand chose...

Ce qui identifie le plus la page analysée dans l'url est le partie la plus proche de l'extension ce qui parait logique :)

Posté

Merci mais en fait j'y suis arrivé, enfin encore un dernier problème.

j'ai des url du type :

nom-produit-accessoires-idproduit.html

nom-produit-prix-idproduit.html

et dans mon htaccess j'ai

RewriteRule ^([a-zA-Z0-9-]+)-([a-zA-Z0-9]+)-([0-9]+)\.html$ produit22.php?idproduit=$3&technique=$2&nomproduit=$1 [QSA,L]

le problème est que je n'arrive plus à récuperer la valeur de la variable technique en $_GET

Posté

en fait je voudrais juste une url du type nomproduit-prix.html

mais des que j'enleve l'idproduit de l'url ca ne fonctionne plus

y'a-t-il une solution ?

Posté
en fait je voudrais juste une url du type nomproduit-prix.html

mais des que j'enleve l'idproduit de l'url ca ne fonctionne plus

y'a-t-il une solution ?

<{POST_SNAPBACK}>

stocker dans ta base un identifiant unique de type "nomproduit-prix"

Posté

merci mais le nom de chaque produit est déjà unique et si je fais ça, je vais devoir avoir nomproduit-accessoires nomproduit-caracteristiques, ...

Ca va être un peu lourd.

On ne peux pas récuperer l'idproduit d'une maniere ou d'une autre ?

Veuillez vous connecter pour commenter

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



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