2009-06-20 121 views
2

我正在创建一个博客引擎作为学习练习,并且有一个特殊问题让我难住。我想知道如何创建博客文章说博客引擎,如WordPress的?我想有两种方法可以做到这一点:博客引擎如何创建博客文章?

1)创建一个名为'testPost'的新博客文章创建一个名为www.myblog.com/testPost.html的新HTML页面。所以,对于每个新的博客文章,您都可以将新的HTML页面保存到服务器。这种方法似乎效率低下。一个博客可以有数百个博客文章,这意味着你将不得不创建数百个HTML页面。我不认为我想要使用这种方法。

2)您有一个通用博客帖子页面,其数据根据您尝试访问的帖子进行呈现。例如,如果我创建'testPostOne',通用博客文章页面将填充testPostOne的数据和URL,如果我创建'testPostTwo',那么通用页面将呈现testPostTwo的相应内容等等。

但是使用这种方法带来了它自己的问题。例如,你将如何链接到一个实际上不存在的页面?链接到http://www.myblog.com/testPostOne.html将不起作用。

这些是我可以想出来解决这个问题的两种方法。我不确定是否有其他选择。如果您知道这个问题,请随时推荐解决此问题的更好方法。

基本上,我希望能够为每个博客文章都有一个很好格式化的URL,而不必在服务器上为每个博客文章创建一个新的HTML页面。

编辑:我想补充一点,我使用ASP.NET要做到这一点,以便通过该框架提供任何方法将是有益的

回答

6

基本的想法是使用数据库。每个发布都将是数据库中的一个条目,您只需根据URL检索数据。例如,

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

然后,您可以使用URL重写方法来检索具有更清晰URL的相同帖子,或更好的RESTful方法来完成相同的任务。

+0

如果你喜欢书名,你总是可以使用堆栈溢出方法并使标题成为URL。 – 2009-06-20 01:35:28

0

你需要做的,比如说,PHP动态页面它从数据库中读取发布内容的数据。如果您想在网页中使用漂亮的网址,那么您需要查看诸如mod_rewrite之类的内容来重写网址。

1

这里是用ASP.NET 2.0编写的an open source blog engine和一个written in PHP(还有很多其他的东西)。你最好打赌的是检查设计和架构,并剖析它(或类似的东西)是如何工作的。

0

如果动态创建的页面(如建议2),当您尝试访问它,即使它不是在磁盘上的实际工作文件http://www.myblog.com/testPostOne.html将存在...

所以建议2可能是最好的选择。

+0

它真的存在吗?我会认为“testPostOne.html”必须是特定帖子中数据库标识符的名称。但它很可能是一个你使用的ID,所以URL将是“http://www.myblog.com?post_id=1” 除非你开始使用mod_rewite这是一个全新的球类游戏。 – gargantuan 2009-06-20 00:41:56

0

个人而言,我使用Apache mod_rewrite。所以,当你有一个网址,如:

http://myblog.com/archives/my_very_first_post

你可以做一个重写规则是这样的:

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

Apache的解释“my_very_first_post”作为后ID,并将其送至一个PHP脚本处理ID。脚本然后从数据库获取帖子并显示它。

我相信这是最常见的方法。