SEO友好URL的URL路由

时间:2012-10-16 09:39:00

标签: asp.net asp.net-mvc-2 asp.net-mvc-routing

我想创建一些SEO友好的URL。

以下是我的Global.ascx条目:


 routes.MapRoute(
     "Product",
     "{action}/{param1}/{id}",
     new { controller = "Home", action = "Index" });

 routes.MapRoute(
     "Default",
     "{controller}/{action}/{id}",
     new { controller = "Home", action = "Index", id = UrlParameter.Optional });

First Mapping是因为我不想在url中显示我的控制器名称。 下一个映射用于URL的其余部分。

问题是有一些URL给我一个错误,如:


http://localhost:1234/index/my-product-information/12  : PASS
http://localhost:1234/contentcontrol/index             : PASS
http://localhost:1234/contentcontrol/index/12          : FAIL

这里, index:ACTION NAME contentcontrol:控制器名称

我该如何解决这个问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是,当涉及到具有3个段的URL的请求时,没有什么可以区分您的第一条路线与第二条路线,因此第一条路线捕获所有这些请求并“隐藏”第二条路线。为了解决这个问题,你必须区分这两条路线,例如通过制作第一条路线模式:

"/Go/{action}/{param1}/{id}"