2010-11-10 25 views

Répondre

1

Quelle langue utilisez-vous? Je suppose que vous pensez à PHP (compte tenu de votre référence à WordPress). Vous avez quelques options:

  1. Mod-Rewrite
  2. Router

À mon avis, la meilleure option est de trouver un framework web moderne qui offre une fonctionnalité de routage bonne. De plus, regardez comment modifier un CMS existant (plusieurs existent, vous semblez avoir entendu parler de WordPress).

+0

J'ai déjà pris le cas de la personnalisation d'autres CMS en considération. Mais je veux le construire moi-même. Oui, je travaille sur PHP et oui, je suis très familier avec les autres CMS disponibles. Je vais regarder dans les liens que vous avez fournis. Merci pour la réponse. :) Et mon intension réelle est d'apprendre à construire quelque chose comme ça. Donc, la personnalisation n'est pas une de mes options. :) –

1

Je recommanderais de créer des liens qui passent dans un paramètre d'URL tel que ... "http: //...PostID? 123 & CatID = 232 & ..." de sorte que lorsque la personne clique sur ce particulier lien, vous pouvez analyser les paramètres dans l'URL et obtenir le message exact en fonction de l'ID, ou même effectuer un filtrage supplémentaire en passant d'autres champs selon vos besoins.

+0

Si tel était le cas, il n'y avait aucun besoin de cette question. Je veux définir l'URL de ma page .. Comme vous pouvez le faire dans wordpress. permaliens comme http: //abc.def/this-in-a-test-post .. –

+0

+1, le rien n'est nécessaire pour fournir un "lien permanent" – Kevin

+0

@Bibhas: bien, le type de permaliens que vous référez sont vraiment une fonctionnalité qu'offre Apache. Voir la réponse de @Kevin. Il semble que mod_rewrite soit ce que vous cherchez. Mais à la fin, le module mod_rewrite transforme simplement l'URL avec params (comme je vous l'ai mentionné) dans une forme plus conviviale comme http: //abc.ed/link-to-my-post.html – Icarus

1

Si vous voulez construire le tout vous-même, commencez par comprendre ce qu'est un front controller, car cela résout vraiment le problème sous-jacent de la façon dont vous exécutez le même code pour différentes URL. Avec cette compréhension, il existe deux façons d'attaquer le problème avec ce modèle de conception: la réécriture d'URL ou la génération de fichiers physiques.

URL Rewriting

Avec la réécriture d'URL, vous devez intercepter l'URL demandée et l'envoyer sur votre contrôleur frontal. Généralement, cela se fait au niveau du serveur Web, bien que certains serveurs d'applications agissent également en tant que serveurs Web. Avec Apache, comme d'autres ont posté, vous pouvez utiliser mod_rewrite avec une règle qui ressemble à ceci:

RewriteRule ^/(.*) /path/to/front/controller.ext [E=REQUEST_URI:%{REQUEST_URI},QSA,PT,NS] 

Avec cette règle, le chemin initialement demandé à être envoyé au contrôleur avant comme une variable appelée « REQUEST_URI » . Notez, je ne suis pas sûr de la bonne syntaxe en PHP pour y accéder. Dans le hachage du contrôleur frontal (par exemple, MD5), cette valeur et utilisez-la pour rechercher l'enregistrement à partir d'une base de données. Tenez compte de l'algorithme de hachage que vous utilisez pour produire des doublons. Le hachage est nécessaire si vous autorisez les URL sur la taille maximale des colonnes de votre base de données pour les données varchar, en supposant que vous ne puissiez pas effectuer de recherche sur les CLOB.

Fichier physique Génération

génération de fichier physique créerait un fichier qui correspond à l'URL permanente que vous imaginez. Donc vous écririez quelque chose qui crée/renomme le fichier au moment où il est posté. Cela supprime le besoin de stocker un hachage et à la place vous placez des informations sur le message que vous voulez servir à l'intérieur de ce fichier (c'est-à-dire l'ID du message) et le transmettez au contrôleur frontal.

Recommandation

Ma préférence est l'approche de réécriture d'URL, de sorte que vous n'avez pas à vous soucier d'écrire des fichiers code dynamique à l'exécution.Cela dit, si vous voulez quelque chose avec moins de magie, ou vous attendez beaucoup de requêtes, la génération de fichiers physiques est la voie à suivre parce que c'est plus évident et nécessite que le serveur fasse moins de travail.