ASP.Net MVC - идентификатор объекта маршрута == заголовок - как бороться с дубликатами? - PullRequest
2 голосов
/ 29 мая 2009

Веб-страницы перешли на использование URL-адресов, таких как:

// weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

т.е. они включают заголовок страницы в URL, а не имеют некоторый закодированный идентификатор.

Я понимаю, что это полезно для SEO, а также для пользователей при поиске правильной страницы, где они хотят ввести URL-адрес.

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

Является ли триггер базы данных, который создает URL-адрес на основе заголовка и добавляет числовой инкрементный суффикс к любым дубликатам, лучший путь, и если да, то как будет выглядеть такой триггер?

Ответы [ 4 ]

1 голос
/ 29 мая 2009

Вместо идентификатора, основанного на заголовке, они могут использовать идентификатор, основанный как на дате, так и на заголовке ( 2007/12/03 / asp-net-mvc-framework-part-2-url-routing ). Поэтому, если у вас нет статей с одинаковыми заголовками за один день (что не является слишком строгим ограничением), дубликаты удаляются.

0 голосов
/ 16 августа 2009

Вы можете сделать то же самое, что и SO. То есть слаг есть только как GoogleJuice. Эти два URL разрешают одно и то же:

ASP.Net MVC - идентификатор объекта маршрута == заголовок - как бороться с дубликатами?

ASP.Net MVC - идентификатор объекта маршрута == заголовок - как бороться с дубликатами?

Итак, в приведенном вами примере, если CMS присваивает каждому сообщению уникальный числовой идентификатор (что, я полагаю, вполне вероятно), вы можете включить его в URL:

http://weblogs.asp.net/scottgu/archive/2007/12/03/1234/asp-net-mvc-framework-part-2-url-routing

В этом примере символ 1234 является идентификатором сообщения.

0 голосов
/ 29 мая 2009

В Wordpress, по крайней мере, «слаг» (как они его называют) генерируется один раз из заголовка элемента и сохраняется отдельно в базе данных. Если два «слизняка» сталкиваются, он добавляет -1, -2 и т. Д. К концу. Я лично предпочитаю, чтобы вы добавили (необязательное) поле в форму отправки, чтобы люди могли вставлять свои собственные - это позволяет людям указывать более короткий URL, чем my-long-article-is-hard-to-type.

0 голосов
/ 29 мая 2009

Вы должны смоделировать эту концепцию в своем приложении. Генерация URL на основе заголовка может быть автоматической , но не может быть невидимой . WordPress (и, возможно, другие CMS тоже) справляются с этой задачей довольно хорошо - они будут использовать URL по умолчанию на основе введенной вами информации, но «ключевая» часть URL видима и доступна для редактирования пользователю, а также уникальность применяется на соответствующем уровне (глобально, в месяц, в день - что угодно).

Полагаю, что создание URL-адреса полностью невидимым приведет к непонятным ошибкам для пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...