ASP.NET MVC でデフォルトのテンプレートと同じように作ると、その URL は以下のように大文字が含まれるものが生成されてしまいますよね。
しかし、SEO 的には URL は小文字で統一して欲しいです。
今までは Url.Action や Html.ActionLink などで小文字を指定するか、ルーティング周りを入れ替えるぐらいしか方法がなかったのですが、ASP.NET 4.5 からは RouteCollection に LowercaseUrls というプロパティが追加されていたようです。
RouteCollection.LowercaseUrls プロパティ (System.Web.Routing)
これを true にすると、URL ルーティングで生成される URL が全て小文字になるので解決!
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // URL は小文字にする routes.LowercaseUrls = true; routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } }
実際に試してみると、ちゃんとリンク先 URL が小文字になっていました!これは最高!!
これでもう何も怖くない!と思ったのですが、ASP.NET MVC 4 ではエリアを使った時にはバグで設定が有効にならないようです。
既に CodePlex で Issue として上げられており、更に ASP.NET MVC 5 で修正済みとなっているので、エリアと LowercaseUrls を組み合わせて使う場合には 5 にアップデートしましょうという話でした。
ASP.NET MVC 5 へのアップデートをちょいちょい進めてますが、今のところは .NET 4.5 向けでも AntiXSRF に気を付ければ問題なさそうですよ。