2009-06-20 172 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。腳本然後從數據庫獲取帖子並顯示它。

我相信這是最常見的方法。