Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
arnaud_verlaine
# 09 May 2008 - 13:16:53
Citer
53 Posts
Bonjour à tous.
J'utilise pour un nouveau site de l'URL Rewriting classique via un fichier .htaccess.
Jusque là rien de compliqué. J'ai une série de catégorie et sous-catégorie dans le site PHP et tout est bien géré via ce fichier, parce que ces "catégories" sont statiques.

Maintenant j'ai également mis au point un système pour créer les pages HTML (enfin php langue ) de manière dynamique.

Dans une bdd MySQL j'ai donc une table "Pages" avec les champs suivants :

- id
- title
- description
- url

Bref le contenu de ma page est totalement dynamique.

Exemple :

index.php?id=1 -> On peut tomber sur une page dont le titre serait "page sur les fours ménagers"

index.php?id=2 -> On peut tomber sur une page dont le titre serait " comment réussir son mariage"

etc...

Bref une tonne d'articles qui n'ont rien en commun.

Il n'y a donc pas de catégories ou sous-catégories ici comme pour de l'url rewriting classique et statique via le .htaccess

Comment donc dire au fichier .htaccess (ou autre technique mais là je ne vois pas) d'aller rechercher le nom de l'url (exemple : comment-reussir-son-mariage.html) dans la base de données ?

Merci d'avance,

Cordialement, cligne

http://www.infotek.be 
^
Thomas D.
# 09 May 2008 - 13:57:52
Citer
Roi sous la montagne
Modérateur
2827 Posts
Salut,
arnaud_verlaine a écrit :
Comment donc dire au fichier .htaccess (ou autre technique mais là je ne vois pas) d'aller rechercher le nom de l'url (exemple : comment-reussir-son-mariage.html) dans la base de données ?
Pourquoi utiliser le titre comme élément de recherche dans la base ? Il faudra t'assurer qu'il est bien unique dans la table, et tu risques de t'arracher les cheveux pour gérer les caractères spéciaux à l'entrée et à la sortie ohwell

Un système plus simple, et qui devrait donner des résultats équivalents en termes de référencement, serait de conserver l'id dans l'url, mais en ajoutant le titre de ta page derrière, quelque chose comme
http://monsite.com/2/les+fours+ménagers

que tu peux récupérer avec :
^([0-9]+).*$     index.php?id=$1


Sinon, pour récupérer le nom de l'url dans la base de donnée, ça ne se fait pas dans le fichier .htaccess, mais dans ton script PHP. Le fichier .htaccess ne sert qu'à "traduire l'url" pour passer les variables à PHP.

Format URL :
http://monsite.com/fers+a+repasser+volants

.htaccess :
^$ index.php
^([.]+)$ article.php?$url=$1

article.php :
<?php
$url = $_GET['url'];
// Traitement de la châine $title pour
// 1. éviter les injections SQL éventuelles !!,
// 2. faire correspondre ce qu'on récupère en GET & le contenu de
// la BDD
// $url = ...
$query = sprintf("SELECT * FROM tableArticles WHERE url = '%s'", $url);
// et en avant ...


ps: exactitude des expressions régulières absolument incertaine, j'ai pas testé ^^

Et comme disait Groucho Marx, si vous n'aimez pas mes opinions, j'en ai d'autres.

http://www.tequila-studio.com 
^
arnaud_verlaine
# 13 May 2008 - 09:20:30
Citer
53 Posts
Bonjour et un grand merci pour le coup de pouce.

J'approche du but.

C'est à dire : ceci fonctionne déja en passant non plus l'id mais l'url en paramètre :

www.monsite.com/article.php?url=mon-fer-a-repasser


La page demandée s'affiche bien.

Par contre c'est le lien du htaccess que je foire je pense :


RewriteRule ^([.]+)$ page.php?url=$1 [L]


J'avoue que là je suis un peu paumé.

Je souhaiterais donc une URL du type :

www.monsite.com/mon-fer-a-repasser
ou :
www.monsite.com/mon-fer-a-repasser.html

Bref, c'est une simple bourde de syntaxe dans le .htaccess, si un pro du .htaccess pourrait passer 2 minutes... lol

Merci pour l'aide ! cligne

http://www.infotek.be 
^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 8.1 ms - Charte