次の形式のURLを許可することにより、SEO(および人間)に優しいURLを許可するようにルーティングを設定しました~/{category}/{title}
これらはすべて、適切にリダイレクトするメソッドを持つコンテンツコントローラーにルーティングする必要があります。また~/{category}
、フィルタリングされたインデックスに移動できるようにします。
これはすべて、以下を使用して機能します。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Category And Title", // Route name
"{category}/{title}", // URL with parameters
new { controller = "Content", action = "SeoRouting", title = UrlParameter.Optional }, // Parameter defaults
new { category = "People|IT|Personnel|Finance|Procedures|Tools"}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
}
ただし、カテゴリが変更された場合は、2か所で変更する必要があります。ここGlobal.asaxと列挙型にはカテゴリがあります。
理想的な世界では、パスの最初の部分の値がContentCategory列挙型と一致する場合は最初のルートを使用し、一致しない場合はデフォルトルートを使用します。
カテゴリはめったに変更されないので、これは大きなことではありませんが、可能であると思われる場合は可能です。