URL Rewritting avec en faisant appel à une base de donnée

WRInaute discret
bonjour à tous,

j' utilise actuellement un fichier fiche.php dans lequel je fait passer 2 variables pour appeler des pages , exemple : fiche.php?id1=05&id2=12
Dans ma base de donnée, j'ai une table avec à l'interieur 4 champs : id1, id2, titre et contenu. Bien sur comme vous vous en doutez pour chaque combinaison de id1 et id2 différente, j'obtient un titre en rapport avec le contenu afficher.

J'ai donc envie d'url-rewritté tout ça, en remplaçant mon fiche.php?id1=X&id2=Y par titre-X-Y.html
voici un exemple concret :
Le titre d'un article de ma base de donnée est 'CO2 en aquariophilie', son id1 est 15 et son id2 est 32, je veux obtenir la page co2-en-aquariophilie-15-32.html à la place de fiche.php?id1=15&id2=32.
Je souhaite donc remplacer les espaces du titre et les apostrophes par des -.

Comment faire car j'ai bien réfléchis mais je ne vois pas 'par ou passer' et que mettre dans le .htaccess (je suis novice en la matière!)

merci d'avance de votre réponse

a+

doom
 
WRInaute passionné
Re: URL Rewritting avec en faisant appel à une base de donné

doom a dit:
bonjour à tous,

j' utilise actuellement un fichier fiche.php dans lequel je fait passer 2 variables pour appeler des pages , exemple : fiche.php?id1=05&id2=12
Dans ma base de donnée, j'ai une table avec à l'interieur 4 champs : id1, id2, titre et contenu. Bien sur comme vous vous en doutez pour chaque combinaison de id1 et id2 différente, j'obtient un titre en rapport avec le contenu afficher.

J'ai donc envie d'url-rewritté tout ça, en remplaçant mon fiche.php?id1=X&id2=Y par titre-X-Y.html
voici un exemple concret :
Le titre d'un article de ma base de donnée est 'CO2 en aquariophilie', son id1 est 15 et son id2 est 32, je veux obtenir la page co2-en-aquariophilie-15-32.html à la place de fiche.php?id1=15&id2=32.
Je souhaite donc remplacer les espaces du titre et les apostrophes par des -.

Comment faire car j'ai bien réfléchis mais je ne vois pas 'par ou passer' et que mettre dans le .htaccess (je suis novice en la matière!)

merci d'avance de votre réponse

a+

doom

Pour le htaccess ca donnera un truc du genre:

Code:
RewriteRule -([0-9]*)-([0-9]+)\.html$  /fiche.php?id1=$1&id2=$2 [L]

Pour les tirets dans le titre il faut que tu utilise un truc du genre "str_replace"

Mais il faut savoir que le htaccess ne creer pas tes urls, il redirige seulement. C'est a toi de creer tes url sous la forme que tu veux ensuite le htaccess l'interpretera comme fiche.php?...

++
 
WRInaute discret
merci pour ta réponse,

ca veut dire qu'il faut que je crée une url de la forme fiche.php?id1=X&id2=Y&titre=titre-du-film ? comment faire?
 
WRInaute passionné
Non, ca veux dire qu'il faut que tu creer une url du type: co2-en-aquariophilie-15-32.html il faut que tu modifie à l'endroi ou sont créées tes urls.
Mais sa y'a que toi qui peu savoir, on connait pas ton code :wink:

++
 
WRInaute passionné
le plus simple
- faire une fonction affichUrl($id1,$id2) et remplacer tous les liens de ton site par cette fonction

- mettre en place le rewriting dans un .htaccess

Code:
le fonction affichUrl($id1,$id2)
// récupération du titre $id1 $id2 dans la base
// ex : aquariophilie


//modification de l'url
// ex :aquariophilie-15-32.html i

// renvoie de l'url modifié

PS : ce n'est pas optimal en terme de performance (trop de requetes à la base)
 
Discussions similaires
Haut