2009-06-20 7 views
2

私は学習の練習としてブログエンジンを作成しています。特に問題が1つあります。私はどのようにWordpressのようなブログエンジンでブログの投稿が作成されているのだろうか? 「testPost」と呼ばれる新しいブログ記事を作成ブログエンジンはどのようにブログ投稿を作成しますか?

1)www.myblog.com/testPost.htmlと呼ばれる新しいHTMLページを作成します。私はあなたがこれを行うことができます2つの方法があると思っています。したがって、新しいブログ投稿ごとに、新しいHTMLページをサーバーに保存します。この方法は効率が悪いようです。ブログには何百ものブログ記事があるので、何百ものHTMLページを作成する必要があります。私はこの方法を使いたいとは思わない。

2)あなたは、そのデータをアクセスしようとしているポストに応じてレンダリングされる一般的なブログの投稿ページがあります。たとえば、「testPostOne」を作成した場合、ジェネリックブログの投稿ページはtestPostOneのデータとURLで埋められます。「testPostTwo」を作成すると、一般ページはtestPostTwoの各コンテンツをレンダリングします。

しかし、この方法を使用すると、独自の問題が発生します。たとえば、実際には存在しないページにどのようにリンクしますか? http://www.myblog.com/testPostOne.htmlにリンクしても機能しません。

これらは私がこの問題を解決することを思い付くことができ2つの方法があります。他のオプションがあるかどうかはわかりません。あなたが知っているならば、この問題を解決する良い方法をお勧めします。

基本的に、私は一つ一つのためにサーバー上に新しいHTMLページを作成することなく、各ブログの記事のためにきれいにフォーマットされたURLを持つことができるようにしたいです。

EDIT:私はこれを行うには、ASP.NETを使用していることを追加される場合がありますので、このフレームワークを介して利用可能な任意の方法が参考に

答えて

6

基本的な考え方は、データベースを使用することです。各投稿はDB内のエントリになり、URLに応じてデータを取得するだけです。例えば、

www.myblog.com/posts.php?postid=1 または www.myblog.com/posts.aspx?postid=1

あなたはその後、使用のURL書き換え方法のいずれかを取得することができますよりクリーンなURLを持つ同じ投稿、または同じタスクを実行するためのRESTfulな方法です。あなたはそれがディスク上のactuallファイルがないにもかかわらず、それをアクセスしようとすると、(2提案のように)、http://www.myblog.com/testPostOne.htmlが存在します、あなたが動的にページを作成した場合

+0

タイトルが好きな人は、常にStack Overflowメソッドを使用してタイトルをURLにすることができます。 –

0

だろうあなたはPHP、たとえば、動的なページを作成する必要がありますポスト・コンテンツのデータベースからデータを読み取ります。あなたのページできれいなURLが必要な場合は、URLを書き換えるためにmod_rewriteのようなものを調べることをお勧めします。

1
ここ

an open source blog engineは、ASP.NET 2.0で書かれ、1つwritten in PHP(多くの他のものがそこにあります)。あなたは最良の賭けは、デザインやアーキテクチャをチェックアウトし、どのようにそれ(またはそれのようなもの)が仕事をしているか解読することです。

0

...

だから提案2がありますおそらく最善の方法です。

+0

実際に存在するでしょうか?私は "testPostOne.html"特定の投稿のためのDBの識別子の名前でなければならないと思ったでしょう。しかし、それはあなたが使用するIDである可能性が高いので、URLは "http://www.myblog.com?post_id=1"になります まったく新しいボールゲームであるmod_rewiteの使用を開始しない限り、 – gargantuan

+0

@ gargantaun:myblog.com?post_id = 1は存在しますか? index.htmlは存在しますか? Webサーバ上のリソースの存在を定義するものは何ですか? –

0

は個人的に、私は、Apacheのmod_rewriteを使用しています。だから、あなたのようなURLがある場合:、

http://myblog.com/archives/my_very_first_post

をあなたはこのような書き換えルールを作ることができます。

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

ApacheはポストIDとして「my_very_first_post」を解釈し、PHPスクリプトに供給するIDを処理するスクリプトはデータベースから投稿を取得して表示します。

私はこれが最も一般的なアプローチだと考えています。

関連する問題