URL-адреса для элементов на сайте MVC: использовать идентификатор элемента, заголовок элемента или оба? - PullRequest
2 голосов
/ 13 октября 2011

Я занимаюсь разработкой веб-сайта с использованием ASP.NET MVC.Сайт будет похож на StackOverflow в том смысле, что будут отправленные пользователем элементы, которые будут иметь числовой идентификатор и текстовое название.

Теперь я думаю о том, как спроектировать систему маршрутизации URL для страниц «Детали элемента»,Я думал об использовании одного идентификатора (как в http://www.mysite.com/items/1234) или только названия (как в http://www.mysite.com/items/how-to-foobarize-a-fizzbuzz).Однако я вижу, что StackOverflow использует вместо них обоих (как в http://www.mysite.com/items/1234/how-to-foobarize-a-fizzbuzz).

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

Ответы [ 2 ]

3 голосов
/ 13 октября 2011

Да, наличие идентификатора и названия (которое чаще всего называется slug ) является избыточным, но это здорово как с точки зрения SEO, так и с точки зрения UX.

Есть одна личная неприязнь к тому, как это делается здесь, на SO. Кажется, я не понимаю, почему идентификатор отделяется от пули с косой чертой (/7754456/urls-for-item...). Для меня каждый сегмент подразумевает какую-то иерархию, поэтому тире будет более уместным /7754456-urls-for-item...). Но это только я.

1 голос
/ 13 октября 2011

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

...