SEO Frinedly URL的URL路由

我想创建一些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)

2 years ago

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

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