Aller au contenu

[php]gestion des urls


FiP_

Messages recommandés

Sur mon blog (fait main), il va falloir que je revise la maniére dont les addresses (url) de mon site sont analysées.

j'aimerai que les adresses suivantes fonctionnent:

index 
index/blog
index/blog/2006 
index/blog/2006/08
index/blog/2006/08/le_message
index/articles
index/articles/2006 
index/articles/2006/08
index/articles/science
index/articles/science/informatique
index/articles/science/informatique/windows_2000
index/liens

Elles sont, je pense, suffisament claires pour que vous compreniez ce que le site doit afficher à chaque fois... si seuls 'blogs' et '2006' sont précisés, je veux la liste des billets de type 'blog', pour l'année 2006. Si le mois est précisé, je veux ceux de mai 2006. (pas de tri par jour)

J'ai un soucis en ce qui concerne les parametres 'texte', comme le nom des catégories et le titre d'un billet/article/autre: le code php va devoir vérifier que cette catégorie, ou que cet article, existe bel et bien. Mais je ne pense pas vouloir mettre le titre directement dans l'adresse: il pourrait y avoir des caracteres spéciaux, ou simplement des espaces, qui seront transformés en "%20".

J'avais pensé, à un moment, à faire en sorte que les titres soient de la forme "xx - le titre", en ne prenant en compte que l'id, le 'xx', pour rechercher le billet. Avec cette méthode malheureusement, rien empecherait l'un de vous de demander, par exemple, l'adresse "index/blog/2006/08/12-ta_mere_est_une_:francais:", qui afficherai un billet valide, le 12, mais avec des profanités dans la barre d'adresse.

Il me faut donc un nom "à afficher" et un nom "safe for web"... Devrais-je conserver deux noms dans la base de données, ou trouver une fonction qui transformerai un titre en texte "safe" ?

L'ennui, avec l'utilisation d'une fonction, c'est que la transformation doit être reversible: lorsque le code analyse l'adresse donnée, il devra chercher dans la base de données, avec le vrai nom..

Je pourrais m'inspirer de wikipedia, qui transforme les "évenements de l'année 2006" en "%C3%89venements_de_l%27ann%C3%A9e_2006"...

____________________

Par curiosité, je me suis demandé comment Dotclear faisait, et la réponse et simple:

http://petit.dotclear...02-dotclear-c-est-vraiment-nul

j'ai l'algorithme dans la peau :francais:

Lien vers le commentaire
Partager sur d’autres sites

Si tu ne fais pas d'url rewriting, il va forcement te rester index.php? dans ton url

Heu non, pour le moment sur mon site on peut écrire .../index.php/truc [edit : il me semble qu'il s'agit là d'une fonctionnalité d'Apache.] , et recupérer truc dans le code d'index.php

Je peux même n'écrire que .../index/truc :)

	//page demandée:
list ($debut,$a,$b,$c,$d,$fin) = preg_split('/\//i', $_SERVER["REQUEST_URI"], 6, PREG_SPLIT_NO_EMPTY);

$a = clean($a);
$b = clean($b);
$c = clean($c);
$d = clean($d);
unset($debut);
unset($fin);

//page par défaut
$a = isset($a) ? $a : 'accueil';

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...