2010-09-27 1 views
1

у меня есть раздел новостей, где страница разрешения на URL-адреса, какдинамического сео названия для новостных статей

newsArticle.php? ID = 210

Что я хотел бы сделать, это использовать название из базы данных создать сео дружественные названия, как

newsArticle/джо-идет к городу

Любые идеи, как я могу добиться этого?

Спасибо,

Р.

+1

Какой сервер вы используете? Используете ли вы систему CMS или серверные скрипты? – Guffa

+0

Является ли сайт построенным в HTML/PHP или вы используете Joomla/Wordpress? Можете ли вы закодировать на PHP или ищете плагин? –

ответ

6

Я предлагаю вам на самом деле включать идентификатор в URL, перед названием части, и игнорировать само название при маршрутизации. Таким образом, ваш URL-адрес может стать

/news/210/joe-goes-to-town 

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

Очевидно, что точные данные будут зависеть от того, какую платформу вы используете - вы не указали - но основные шаги будут:

  • При создании ссылки, взять название статьи и превратить его в что-то URL-friendly; вы, вероятно, хотите удалить все знаки препинания, и вам следует рассмотреть акцентированные символы и т. д. Имейте в виду, что название не обязательно должно быть уникальным, потому что у вас тоже есть идентификатор
  • При обработке запроса на что-либо, начиная с/news, выполните следующую часть пути, проанализируйте его как целое и загрузите соответствующую статью.
+1

Дополнительным преимуществом является то, что он делает поиск быстрее и быстрее - вам просто нужно использовать числовой идентификатор вместо потенциально длинной строки. – Archimedix

+0

это вся хорошая информация. Платформа в linux работает php. Любые ссылки на то, с чего начать, были бы большой помощью. – Roscoeh

+0

@ Roscoeh: Боюсь, я недостаточно знаю о PHP, чтобы дать подробный совет на этом фронте. Создание URL-адреса должно быть достаточно простым, но я не знаю, как работает маршрутизация в PHP. –

0

Предполагая, что вы используете PHP и может изменить исходный код (это вполне обязательным, чтобы получить названием статьи), я хотел бы сделать следующее:

Во-первых, вам нужно иметь функцию (или, возможно, метод в объектно-ориентированной архитектуре) для создания URL-адресов для вашего кода. Вы должны снабдить функцию объектом статьи или идентификатором статьи, и он возвращает дружественный URL с идентификатором и дружественным названием.
В основном function url(Article $article) => URL.

Вам также потребуются некоторые правила перезаписи URL-адресов, чтобы удалить скрипт PHP из URL-адреса. Для Apache обратитесь к the mod_rewrite documentation для получения более подробной информации (RewriteEngine, RewriteRule, RewriteCond).