2009-06-20 6 views
2

나는 학습 운동으로 블로그 엔진을 만들고 있는데, 하나의 특별한 문제가 저를 곤혹스럽게 만듭니다. 나는 블로그 포스트가 Wordpress와 같은 블로그 엔진에서 어떻게 생성되는지 궁금합니다. 나는 당신이 이것을 할 수있는 2 가지 방법이 있다고 생각하고있다 :블로그 엔진이 블로그 게시물을 작성하는 방법은 무엇입니까?

1) 'testPost'라는 새로운 블로그 포스트를 만들면 www.myblog.com/testPost.html이라는 새로운 HTML 페이지가 생성된다. 따라서 새 블로그 게시물마다 서버에 새 HTML 페이지를 저장합니다. 이 방법은 비효율적 인 것처럼 보입니다. 블로그에는 수백 개의 블로그 게시물이있을 수 있습니다. 즉 수백 개의 HTML 페이지를 만들어야합니다. 나는이 방법을 사용하고 싶지 않다고 생각한다.

2) 액세스하려는 게시물에 따라 데이터가 렌더링되는 일반 블로그 게시물 페이지가 있습니다. 예를 들어 'testPostOne'을 만든 경우 일반 블로그 게시물 페이지는 testPostOne의 데이터와 URL로 채워지며 'testPostTwo'를 만든 경우 일반 페이지는 testPostTwo의 해당 내용을 렌더링하는 식으로 진행됩니다.

하지만이 방법을 사용하면 문제가 발생합니다. 예를 들어 실제로 존재하지 않는 페이지에 어떻게 링크합니까? http://www.myblog.com/testPostOne.html에 연결하면 작동하지 않습니다.

다음은이 문제를 해결할 수있는 두 가지 방법입니다. 다른 옵션이 있는지 확실하지 않습니다. 이 문제를 알고 있다면 더 나은 방법을 추천 해 주시기 바랍니다.

기본적으로 각 블로그 게시물마다 서버에 새 HTML 페이지를 만들지 않고도 멋지게 형식화 된 URL을 만들 수 있기를 원합니다.

편집 : 나는

답변

6

기본적인 아이디어는 데이터베이스를 사용하는 것입니다. 각 게시는 DB에 항목이되며 URL에 따라 데이터를 검색하기 만하면됩니다. 예를 들어,

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

당신은 다음 중 하나를 사용하는 URL 재 작성 방법을 검색 할 수 있습니다 동일한 작업을 수행하는 더 깨끗한 URL 또는 더 나은 RESTful 메서드를 사용하는 동일한 게시물. 당신이 디스크에 실제로 사용 파일이없는 경우에도 액세스 할 때 (이 제안에서와 같이)는 http://www.myblog.com/testPostOne.html이 존재합니다 동적 페이지를 작성하는 경우

+0

제목이 마음에 들면 항상 스택 오버플로 메서드를 사용하고 제목을 URL로 만들 수 있습니다. –

0

당신은 PHP, 말에서 동적 페이지를 확인해야합니다이 프레임 워크를 통해 사용할 수있는 방법이 도움이 될 것입니다 때문에이 작업을 수행하는 ASP.NET을 사용하고 있음을 추가 할 수 있습니다 게시 내용에 대한 데이터베이스에서 데이터를 읽습니다. 페이지에 예쁜 URL이 필요한 경우 URL을 다시 작성하기 위해 mod_rewrite과 같은 것을 조사해야합니다.

1

여기에 ASP.NET 2.0으로 작성된 an open source blog engine과 하나의 written in PHP (많은 다른 것들이 있습니다)이 있습니다. 가장 좋은 방법은 디자인과 아키텍처를 점검하고 그것이 어떻게 작동 하는지를 분석하는 것입니다.

0

...

그래서 제안 2가 아마도 가장 좋은 방법입니다.

+0

실제로 존재합니까? 나는 "testPostOne.html"이 특정 게시물에 대한 DB의 식별자 이름이어야한다고 생각했을 것입니다. 하지만 URL이 "http://www.myblog.com?post_id=1"이되도록 ID를 사용할 가능성이 많습니다. 완전히 새로운 볼 게임 인 mod_rewite를 사용하기 시작하지 않는 한. – gargantuan

+0

@ gargantaun : myblog.com? post_id = 1이 존재합니까? index.html이 존재합니까? 웹 서버에서 자원의 존재를 정의하는 것은 무엇입니까? –

0

개인적으로 Apache mod_rewrite를 사용합니다.이 같은 URL이 그래서 :

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

아파치 게시물 ID로 "my_very_first_post"를 해석하여 PHP 스크립트에 피드 :

http://myblog.com/archives/my_very_first_post

이 같은 재 작성 규칙을 만들 수 있습니다 ID를 처리하는 그런 다음 스크립트는 데이터베이스에서 게시물을 가져 와서 표시합니다.

나는 이것이 가장 일반적인 방법이라고 생각합니다.

관련 문제