Как движок блога создает сообщения в блоге? - PullRequest
2 голосов
/ 20 июня 2009

Я создаю блог-движок в качестве учебного упражнения, и одна конкретная проблема поставила меня в тупик. Мне интересно, как сообщения в блоге создаются, скажем, в блог-движке, таком как Wordpress? Я думаю, что есть 2 способа сделать это:

1) При создании нового сообщения в блоге с именем «testPost» создается новая HTML-страница с именем www.myblog.com/testPost.html. Таким образом, для каждого нового сообщения в блоге вы сохраняете новую HTML-страницу на сервере. Этот метод кажется неэффективным. Блог может содержать сотни сообщений в блоге, что означает, что вам придется создавать сотни HTML-страниц. Я не думаю, что хочу использовать этот метод.

2) У вас есть общая страница блога, данные которой отображаются в соответствии с тем сообщением, к которому вы пытаетесь получить доступ. Например, если я создал 'testPostOne', страница общего блога будет заполнена данными и URL testPostOne, если я создаю 'testPostTwo', то общая страница отобразит соответствующее содержимое testPostTwo и т. Д.

Но использование этого метода приносит свои проблемы. Например, как бы вы ссылались на страницу, которая на самом деле не существует? Ссылка на http://www.myblog.com/testPostOne.html не будет работать.

Это два способа, которые я мог бы придумать, чтобы решить эту проблему. Я не уверен, есть ли другие варианты. Пожалуйста, не стесняйтесь рекомендовать лучший способ решения этой проблемы, если вы знаете один.

По сути, я хочу иметь возможность красиво отформатировать URL-адрес для каждого сообщения в блоге, не создавая новую HTML-страницу на сервере для каждого.

РЕДАКТИРОВАТЬ : я мог бы добавить, что для этого я использую ASP.NET, поэтому любые методы, доступные через эту среду, будут полезны

Ответы [ 5 ]

6 голосов
/ 20 июня 2009

Основная идея заключается в использовании базы данных. Каждая запись будет записана в БД, и вы просто получите данные в зависимости от URL. Например,

www.myblog.com / posts.php? = 1 сообщения дан или же www.myblog.com/posts.aspx?postid=1

Затем можно использовать методы перезаписи URL-адреса для извлечения того же сообщения с более чистым URL-адресом или, что еще лучше, методом RESTful для выполнения той же задачи.

1 голос
/ 20 июня 2009

Вот движок блога с открытым исходным кодом , написанный на ASP.NET 2.0, и один , написанный на PHP (есть много других). Лучше всего проверить дизайн и архитектуру и проанализировать, как она (или что-то в этом роде) работает.

0 голосов
/ 20 июня 2009

Лично я использую Apache mod_rewrite. Поэтому, когда у вас есть URL-адрес вроде:

http://myblog.com/archives/my_very_first_post * * 1004

Вы можете сделать правило переписывания следующим образом:

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

Apache интерпретирует «my_very_first_post» как идентификатор сообщения и передает его в сценарий PHP, который обрабатывает идентификатор. Затем скрипт извлекает сообщение из базы данных и отображает его.

Я считаю, что это наиболее распространенный подход.

0 голосов
/ 20 июня 2009

Если вы динамически создаете страницу (как в предложении 2), http://www.myblog.com/testPostOne.html будет существовать при попытке доступа к ней, даже если это не файл actall на диске ...

Так что предложение 2, вероятно, лучший путь.

0 голосов
/ 20 июня 2009

Вам потребуется создать динамическую страницу, скажем, в PHP, которая считывает данные из базы данных для содержимого публикации. Если вам нужны красивые URL-адреса на вашей странице, то вам понадобится что-то вроде mod_rewrite для перезаписи URL-адресов.

...