我正在创建一个博客引擎作为一个学习练习,一个特殊的问题让我难过。我想知道如何在像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来执行此操作,因此通过此框架提供的任何方法都会有所帮助

有帮助吗?

解决方案

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

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

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

其他提示

这是用ASP.NET 2.0编写的一个开源博客引擎和一个用PHP编写的(还有很多其他的)。最好的办法是检查设计和架构,并剖析它(或类似的东西)是如何工作的。

您需要在PHP中创建一个动态页面,该页面从数据库中读取发布内容的数据。如果你想在页面中使用漂亮的URL,那么你需要查看类似 mod_rewrite 的内容来重写URL。

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

所以建议2可能是最好的方法。

就个人而言,我使用的是Apache mod_rewrite。所以当你有一个像:

这样的网址时

<代码> http://myblog.com/archives/my_very_first_post

您可以制作如下重写规则:

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

Apache解释“my_very_first_post”&quot;作为帖子ID并将其提供给处理ID的PHP脚本。然后该脚本从数据库中获取帖子并显示它。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top