2009-06-20 6 views
2

Je crée un moteur de blog comme un exercice d'apprentissage et un problème particulier m'a troublé. Je me demande comment sont créés les blogs dans un moteur de blog comme Wordpress? Je pense qu'il y a 2 façons de le faire:Comment un moteur de blog crée-t-il des articles de blog?

1) La création d'un nouveau blog intitulé 'testPost' crée une nouvelle page HTML appelée www.myblog.com/testPost.html. Ainsi, pour chaque nouveau post de blog, vous enregistrez une nouvelle page HTML sur le serveur. Cette méthode semble inefficace. Un blog peut contenir des centaines d'articles de blog, ce qui signifie que vous devez créer des centaines de pages HTML. Je ne pense pas que je veux utiliser cette méthode.

2) Vous avez une page de blog post générique dont les données sont rendues en fonction du message auquel vous essayez d'accéder. Par exemple, si j'ai créé 'testPostOne', la page de blog générique serait remplie avec les données et l'URL de testPostOne, si je créais 'testPostTwo' alors la page générique rendrait le contenu respectif de testPostTwo et ainsi de suite. Mais l'utilisation de cette méthode apporte ses propres problèmes. Par exemple, comment lieriez-vous une page qui n'existe pas réellement? Lier à http://www.myblog.com/testPostOne.html ne fonctionnerait pas.

Voici les deux façons dont j'ai pu résoudre ce problème. Je ne suis pas sûr s'il y a d'autres options. N'hésitez pas à recommander une meilleure façon de résoudre ce problème si vous en connaissez une.

Fondamentalement, je veux être en mesure d'avoir une URL bien formatée pour chaque article de blog sans avoir à créer une nouvelle page HTML sur le serveur pour chacun d'entre eux.

EDIT: Je pourrais ajouter que j'utilise ASP.NET pour faire cela pour toutes les méthodes disponibles via ce cadre serait utile

Répondre

6

L'idée de base serait d'utiliser une base de données. Chaque publication serait une entrée dans la base de données, et vous récupérez simplement les données en fonction de l'URL. Par exemple,

www.myblog.com/posts.php?postid=1 ou www.myblog.com/posts.aspx?postid=1

Vous pouvez alors utiliser des méthodes de réécriture d'URL pour récupérer le même message avec une URL plus propre, ou mieux encore une méthode RESTful pour faire la même tâche.

+0

Si vous aimez les titres, vous pouvez toujours utiliser la méthode Stack Overflow et faire des titres une URL. –

0

Vous aurez besoin de faire une page dynamique, par exemple, PHP qui lit les données d'une base de données pour le contenu du message. Si vous voulez de jolies URL avec votre page, alors vous voudrez regarder quelque chose comme mod_rewrite pour réécrire les URLs.

1

Voici an open source blog engine écrit en ASP.NET 2.0 et un written in PHP (il en existe beaucoup d'autres). Le mieux est de vérifier la conception et l'architecture et de disséquer comment (ou quelque chose comme ça) le travail.

0

Si vous créez dynamiquement la page (comme dans la suggestion 2), le http://www.myblog.com/testPostOne.html existera lorsque vous essayez d'y accéder, même si ce n'est pas un fichier actuall sur le disque ...

Alors suggestion 2 est probablement le meilleur moyen d'y aller.

+0

Existerait-il réellement? J'aurais pensé que "testPostOne.html" devrait être le nom de l'identifiant dans la base de données pour un article particulier. Mais il est plus que probable que ce soit un identifiant que vous utiliserez pour que l'URL soit "http://www.myblog.com?post_id=1" Sauf si vous commencez à utiliser mod_rewite qui est un jeu de balle complètement nouveau. – gargantuan

+0

@gargantaun: Est-ce que myblog.com?post_id=1 existe? Est-ce que index.html existe? Qu'est-ce qui définit l'existence d'une ressource sur un serveur Web? –

0

Personnellement, j'utilise l'Apache mod_rewrite.Ainsi, lorsque vous avez une URL comme:

http://myblog.com/archives/my_very_first_post,

Vous pouvez faire une règle de réécriture comme ceci:

RewriteEngine on 
RewriteRule ^archives/(.*)$ myblog.php?post=$1 

Apache interprète "my_very_first_post" comme un ID de poste et il se nourrit à un script PHP qui gère l'ID. Le script récupère ensuite le message de la base de données et l'affiche. Je crois que c'est l'approche la plus courante.

Questions connexes