Как движок блога создает сообщения в блоге?

StackOverflow https://stackoverflow.com/questions/1020598

  •  06-07-2019
  •  | 
  •  

Вопрос

Я создаю движок блога в качестве учебного упражнения, и одна конкретная проблема поставила меня в тупик.Мне интересно, как сообщения в блогах создаются, скажем, в таком движке блога, как 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, поэтому любые методы, доступные через эту платформу, будут полезны.

Это было полезно?

Решение

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

www.myblog.com/posts.php?postid=1 или www.myblog.com/posts.aspx?postid=1

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

Другие советы

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

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

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

Поэтому предложение 2, вероятно, является наилучшим способом.

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

<код> http://myblog.com/archives/my_very_first_post ,

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top