URL Rewriting

  • Auteur de la discussion Auteur de la discussion coelho
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

Je voudrais savoir si il est possible de faire du rewriting de la facon suivante
(je sais que c'est possible mais c'est surtout pour la maniere de faire...)

J'ai la page page.php?produit=1

que je veux passer en monproduit-marque1.php

genre chaussure-nike.php chaussure-adidas.php... par ex...

Donc faut il que je passe par un htaccess ou par du php
j'ai vu des tutos pour renomer en chaussure-1 en htaccess
mais cela ne me convient pas...
si quelqu'un a des infos, liens, tuto... jsuis preneur!!
j'ai aussi regardé sur google mais je ne trouve pas ce que je cherche
peu etre je cherche mal... :roll:

et est il possible de mettre du php dans htaccess?

merci
 
WRInaute passionné
une règle de réécriture peut gérer une url si le numéro de produit est présent. Sinon il faut gérer une correspondance en php entre l'url et le produit.
 
WRInaute occasionnel
en fait tu prend le probleme a l'envers j'ai l'impression.

Ton htaccess ne te fait pas passe de page.php?produit=1 vers monproduit-marque1.php mais l'inverse.

En fait il faut que tu parte de l'url "propre" pour ensuite aller vers le script php.

Si tu veux que chaussure-adidas.php renvoi vers pages.php?produit=1, il faut forcement que tu passe 1 dans l'url propre (ca pourrait etre chaussure-adidas,1.php
Si tu ne veux pas afficher de numero dans ton url et que tu sais que tu n'aura pas de doublon sur le nom des chaussure tu peux dans se cas passer directemnt adidas en paramettre.

Ex : ton script page prend en parametre un type de produit et un modele (en version chaine de caractere, comme dans ton url) :
RewriteRule ^/([a-z]+)-([a-z]+)\.php$ page.php?type_produit=42&model=$1

Apres a Page de se démerder pour comprend.
 
Nouveau WRInaute
d'après ce que j'ai vu il faut que je fasse pointer mon .htaccess sur un fichier php qui traite ma demande

genre si id=1 alors id=nike

mais après pour le renvoi de l'url jsai pas trop???

et merci de ta reponse
 
WRInaute occasionnel
a mon avis le mieux c'est que tu trouve un exemple concret sur le net. Pour que tu vois exactement tout le cheminement.
Il faut que ca soit clair dans ta tete, sinon tu ne comprendra pas pourquoi ca ne marche pas.

Il doit bien y avoir un site web qui explique bien ca en detail.
 
Nouveau WRInaute
salut javais pas vu ta réponse hier merci

ouè c'est souvent mon problème, jprend beaucoup de chose à l'envers lol

tu me dis que le htaccess fais passer de l'url propre à la dynamique??
pas tout compris la je pensais que cétait pour nettoyer tout ca???

moi j'ai déjà le site fait il manque juste le rewriting pour que cela soit propre...

si tu as un lien ou je pourrais voir cela clairement

merci
 
WRInaute passionné
La réécriture d'url est simple. Il suffit de faire le choix du type d'url que tu souhaites.
Le plus simple est bien sur la solution proposée par k2pi ou l'url réécrite contient le numéro de produit. Dans ce cas il n'y a rien à modifier dans tes scripts php puisque la réécriture permet d'appeler de manière transparente pour l'utilisateur page.php?produit=<numéro de produit présent dans l'url>
Si tu ne veux pas avoir le numéro de produit dans l'url, c'est possible mais dans ce cas c'est le script php appelé par ta règle de réécriture qui doit retrouver le produit à partir d'un libellé (il doit donc être unique) et non plus du numéro de produit. Dans ce cas, l'idéal est de pré-calculer ce libellé et de le stocker en base de données avec un index unique. La clé d'accès des produits n'est donc plus l'id mais ce libellé.
 
Nouveau WRInaute
ok je men fiche un peu davoir 1 ou 2 chiffres dans l'adresse c'est surtout leproduit-lamarque.php que je veux avoir
la marque est géré dans une bdd... donc il faut que mon htaccess appelle un script qui extrait lamarque si j'ai bien compris...
par contre je n'ai pas très bien compris pour le libellé dans la bdd??
 
WRInaute passionné
un fois que tu as fait le choix du format de l'url, ca détermine le script qui est appelé (page.php?produit=123 ou page.php?nomproduit=leproduit-lamarque). Si tu choisies la deuxième solution il faut bien retrouver le produit à partir du paramètre "nomproduit". La solution que je propose c'est de stocker dans ta table de produits en plus de l'id une zone nomproduit qui devient ta nouvelle clé d'accès a la table produit.

La deuxième étape c'est la modification de tous les liens dans tes pages html pour avoir le nouveau format à la place de l'ancien.

La troisième étape c'est la mise en place de redirections 301 des anciennes pages vers les nouvelles (si les anciennes sont déjà en ligne et indexées).
 
Nouveau WRInaute
ok je comprend un peu mieux la mais le soucis c'est que je voudrais pas avoir a retoucher toutes mes pages...

et ma solution de faire appel a un script dans le htaccess c'est possible?

genre

RewriteEngine on
RewriteRule ^chaussure-([a-zA-Z0-9_-]+)-([0-9]+)\.php$ item.php?id=$2 [L]
lamarque ici l'id et la mon script qui rewrite?
 
WRInaute passionné
je ne comprends pas ce que tu veux faire mais c'est impossible d'exécuter du code php dans le htaccess.
Par contre dans ta rewriterule tu peux indiquer le script que tu veux comme deuxième paramètre.

il ne faut pas oublier que la réécriture ne sert qu'a renommer une page. La page reste accessible par l'ancien nom de toute façon (sauf si tu mets en place une redirection 301).
Tu peux a la limite laisser l'ancien nom dans ton code html mais ca t'oblige a mettre en place une redirection qui génère de la charge serveur inutile. Je ne suis pas sur que ça plaise aux moteurs de recherche en plus.
 
Nouveau WRInaute
en fait je crois que tu avais bien compris une partie de ma question (c impossible!!)

pour te réexpliquer ce que je veux c'est simple

j'ai une url item.php?id=1
que je veux changer en chaussure-nike.php (avec 1 ou sans ca met égale, php ou html aussi)

maintenant je voudrais essayer de toucher le moins possible au site et de ne pas a avoir a créer une bdd pour cela

j'en demande peu etre bcp... il faut me dire si c'est possible ou pas...
 
WRInaute passionné
tu va pouvoir visualiser le contenu de item.php?id=1 en utilisant l'url chaussure-nike.php avec la réécriture mais c'est tout ce que cela va te faire.
Ca ne va pas changer tes éventuels liens vers item.php?id=1 en chaussure-nike.php : il faut que tu le fasses en plus.
 
Nouveau WRInaute
bon en fait j'ai réussi merci a tt le monde pour votre aide
thx

j'ai juste rajouté la marque dans l'url ce qui donne catalogue.php?id=1&marque=<?php echo $marque; ?>

et le htaccess

RewriteEngine on
RewriteRule ^catalogue-telecommande-([a-zA-Z0-9_-]+)-([0-9]+).php /catalogue.php?tlo_pro_id=$2&marque=$1 [L]

une derniere question google notre ami ne va pa le prendre mal si j'ajoute ceci alors qu'il ne sert a rien dan le fichier php???
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut