Вы должны убедиться, что не будет случайного совпадения некоторых правил маршрутизации. Например, скажем, что вы ставите язык в качестве первого тега, убедитесь, что не будет никаких категорий новостей, которые имеют «en» для имени. Я знаю, что это глупый пример, но я думаю, вы понимаете. Убедитесь, что вы указали наименее точные правила маршрутизации в последнюю очередь.
Лично я бы структурировал это так:
[language]/[category]/[subcategory]/[itemtitle]/[itemid]
Почему [itemId] вы можете спросить? Если у вас более крупный сайт, может случиться так, что у вас есть 2 новостные статьи с одинаковым названием. Ваш код может «просто случайно» быть написан, чтобы показать только первый возвращенный новостной элемент, но он также может и не быть. Идентификатор всегда уникален, и с точки зрения SEO, добавление идентификатора действительно не имеет значения (по моему опыту, по крайней мере).
Вы можете добавить маршрут, где [язык] опущен и вместо него предусмотрено значение по умолчанию.
Кроме того, Скотт Гатри недавно написал об этом blogpost , который определенно стоит прочитать, я думаю, что он все еще действителен для MVC 3. Он может просто дать вам некоторые идеи!