Besoin d'un coup de main pour corriger mon code

Nouveau WRInaute
Bonsoir,
Je cherche à faire l'url rewriting suivante :
Code:
/products_listby.php?manu_id=92
par quelque chose comme:
Code:
tous-nos-produits_popolini.php
Ainsi de suite pour tous mes fournisseurs...

J'ai donc écrit le code suivant qui ne fonctionne pas
Code:
RewriteCond %{QUERY_STRING} ^manu_id=([^&]*)$

RewriteRule ^products_listby\.php$ /test/catalog/%1-f.php? [R=301,L]

RewriteRule ^([a-z0-9_-]+)-f\.php$ /test/catalog/products_listby.php?manu_id=$1&rewriting [L]

Est-ce que quelqu'un pourrait me donner un coup de main pour corriger cela.

Bien sur ici seul l'ID du fournisseur serait intégré dans l'url finale...
Ma deuxième question est comment faire pour intégrer le nom du fournisseur au lieu de l'ID?

Merci d'avance

Laurent
 
WRInaute accro
j'ai un peu l'impression que tu tentes de faire le contraire de ce que tu veux obtenir : pour obtenir une url claire, ça se fait dans le programme (php, asp, jsp, ...) et donc on inclut le nom du fournisseur ainsi que son id.
La transformation url claire en url avec paramètres se fera, elle, dans le htaccess
 
Nouveau WRInaute
Bonsoir,
Merci de ton intérêt!
Comme je ne maitrise pas bien le sujet, j'ai besoin de reformuler ma demande, car je ne suis pas sur de m'être bien exprimé.

Aujourd'hui, sur ma boutique, j'ai une image dont le lien pointe vers la liste des produits d'un fournisseur choisi mais le lien est du type:
Code:
/products_listby.php?manu_id=92
Je souhaiterais que le lien soit du type:
Code:
tous-nos-produits_popolini.php
ou popolini est le nom du fournisseur dont l'id est 92 ( :arrow: l'url rewriting serait valable pour tous les id)

Le code qui j'ai inséré ne le permet-il pas? avec les erreurs possibles bien sur...
Je cherche aussi comme tu le fais remarquer, à intervenir sur le fichier php qui permet d'inclure le nom du fournisseur dans l'url...
Si vous avez des pistes n'hésitez...
@+
Laurent
 
WRInaute discret
Il te faut creer un champs ds ta table avec un permaliens pour pouvoir spliter ton url sur un repère et faire la comparaison avec id

je sens qu'un mini exemple s'impose, en quelque ligne:

Table sql fournisseur

Code:
id    nom_fournisseur   permaliens
4     toto                      tous-les-produits-de-toto.php

je te code un truc rapide

Code:
// on recupere url
$script_url = "http://tonsite.fr/";
$uri = $script_url . $_SERVER['REQUEST_URI'];

# on la parse
$parsed_url = parse_url($uri);

# on retirer le premier slash
$parsed_url = str_replace('/', '',$parsed_url);

# la petite regex pour visé un repere pour ensuite spliter dessus (tu peut le faire avec explode mais si tu souhaite passer un array je te conseille preg_split)
$pattern = '/(tous-les-produits-de-(.*))/';
		
# et on split sur le 3 eme element tab... que l'on viens de parsé
$url_split = preg_split($pattern, $parsed_url['path']); 

à ce stade on à recuperer l'élement de la chaine qui nous interesse, soit toto

donc tu fait select id from table_fournisseur where id = '$url_split' limit 1

tu fech etc

blablabla



ensuite tu ecrit ta regle simplement:

RewriteRule ^tous-nos-produits_de_(*).php /products_listby.php [L]

en faisant comme ceci ca te permet de faire plusieurs liens,


tous-nos-produits_de-toto
tous-nos-produits_de-tata

je tes fait un exemple rapidos pour que tu comprenne la technique ;) il est tards je sais pas si jai bien compris ta question, bon courage bye
 
Nouveau WRInaute
Bonsoir,
J'ai vraiment pris le temps d'essayer de comprendre ta réponse, mais j'ai plein de questions qui m'empêchent d'avancer.
1/Ou doit on introduire le code que m'a indiqué? J'arrive à comprendre le raisonnement donc c'est cool mais
2/A partir de
donc tu fait select id from table_fournisseur where id = '$url_split' limit 1

tu fech etc

blablabla
La je ne t'ai plus suivi :wink:
Ou doit-on faire cette requête sql?
Faut-il intervenir sur tous les fichiers php qui contiennent un lien à "traiter"?

Merci d'avance pour votre aide
Laurent
 
Discussions similaires
Haut