我正在创建一个博客引擎作为一个学习练习,一个特殊的问题让我难过。我想知道如何在像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来执行此操作,因此通过此框架提供的任何方法都会有所帮助
答案 0 :(得分:6)
基本思想是使用数据库。每个发布都是数据库中的一个条目,您只需根据URL检索数据。例如,
www.myblog.com/posts.php?postid=1 要么 www.myblog.com/posts.aspx?postid=1
然后,您可以使用URL重写方法来检索具有更清晰URL的相同帖子,或者更好的RESTful方法来执行相同的任务。
答案 1 :(得分:1)
这是{2.0}用ASP.NET 2.0写的an open source blog engine和written in PHP(还有很多其他的)。最好的办法是检查设计和架构,并剖析它(或类似的东西)是如何工作的。
答案 2 :(得分:0)
您需要在PHP中创建一个动态页面,该页面从数据库中读取发布内容的数据。如果您希望网页上包含漂亮的网址,那么您需要查看mod_rewrite
之类的内容来重写网址。
答案 3 :(得分:0)
如果您动态创建页面(如建议2所示),当您尝试访问它时,http://www.myblog.com/testPostOne.html将存在,即使它不是磁盘上的执行文件...
所以建议2可能是最好的方法。
答案 4 :(得分: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并将其提供给处理ID的PHP脚本。然后该脚本从数据库中获取帖子并显示它。
我相信这是最常用的方法。