Judefruit Posté 6 Février 2006 Partager Posté 6 Février 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
KaRaK Posté 6 Février 2006 Partager Posté 6 Février 2006 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jok Posté 6 Février 2006 Partager Posté 6 Février 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
dstauret Posté 6 Février 2006 Partager Posté 6 Février 2006 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Judefruit Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 (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é 7 Février 2006 par udufru Lien vers le commentaire Partager sur d’autres sites More sharing options...
Judefruit Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 (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é 7 Février 2006 par udufru Lien vers le commentaire Partager sur d’autres sites More sharing options...
Judefruit Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
KaRaK Posté 7 Février 2006 Partager Posté 7 Février 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Judefruit Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Judefruit Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
hcplayer Posté 7 Février 2006 Partager Posté 7 Février 2006 en fait je voudrais juste une url du type nomproduit-prix.htmlmais 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" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Judefruit Posté 7 Février 2006 Auteur Partager Posté 7 Février 2006 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant