MVC 路由 - 将特定 URI 重新路由到另一个 URI
MVC Routing - Reroute Specific URI to Another URI
我们有一些链接显示在 Google 具有 incorrect/old 格式的地方。这些正在 Google Places 端修复。在这些更改传播之前,我会尝试对其进行创可贴并将损坏的 URI 重定向到良好的 URI。
我需要重新路由两个 URI:
1. http://www.BusinessName/Locations/Location?name=Vegas and 2. http://www.BusinessName/Locations/Vegas
并将它们发送到单个有效的 URI,
http://www.BusinessName/Locations/Location?name=拉斯维加斯维加斯(注意名称不同)
在 ASP 的日子里,我会做一个 response.redirect,但我知道这在 MVC 中是不行的。
我的 RouteConfig.cs 默认路由低于标准。 {name} 参数是位置。
routes.MapRoute(
"LocationDetail",
"Locations/{name}",
new { controller = "Location", action = "Location" });
LocationController 还将处理格式,http://www.BusinessName/Locations/Location?name=Vegas。
我完全明白如何将路由格式更改为不同的顺序,例如 {controller}、{id}、{action} 并且我已经构建了一些路由来访问一些静态内容,但我什么都没有已经尝试过简单地将“http://www.BusinessName/Locations/Location?name=Vegas”重新路由到“http://www.BusinessName/Locations/Location?name=LasVegas”
处理此问题的最佳方法是在 IIS 级别。如果您还没有 URL Rewrite Module,请安装它,然后您可以设置从这两个 URL 到正确的 URL 的永久重定向。然后,IIS 会自动重定向,您的应用程序无需参与或关心。
我相信您正在寻找的是 Return RedirectToAction(...)
在您的控制器中。
我们有一些链接显示在 Google 具有 incorrect/old 格式的地方。这些正在 Google Places 端修复。在这些更改传播之前,我会尝试对其进行创可贴并将损坏的 URI 重定向到良好的 URI。
我需要重新路由两个 URI: 1. http://www.BusinessName/Locations/Location?name=Vegas and 2. http://www.BusinessName/Locations/Vegas 并将它们发送到单个有效的 URI, http://www.BusinessName/Locations/Location?name=拉斯维加斯维加斯(注意名称不同)
在 ASP 的日子里,我会做一个 response.redirect,但我知道这在 MVC 中是不行的。
我的 RouteConfig.cs 默认路由低于标准。 {name} 参数是位置。
routes.MapRoute(
"LocationDetail",
"Locations/{name}",
new { controller = "Location", action = "Location" });
LocationController 还将处理格式,http://www.BusinessName/Locations/Location?name=Vegas。
我完全明白如何将路由格式更改为不同的顺序,例如 {controller}、{id}、{action} 并且我已经构建了一些路由来访问一些静态内容,但我什么都没有已经尝试过简单地将“http://www.BusinessName/Locations/Location?name=Vegas”重新路由到“http://www.BusinessName/Locations/Location?name=LasVegas”
处理此问题的最佳方法是在 IIS 级别。如果您还没有 URL Rewrite Module,请安装它,然后您可以设置从这两个 URL 到正确的 URL 的永久重定向。然后,IIS 会自动重定向,您的应用程序无需参与或关心。
我相信您正在寻找的是 Return RedirectToAction(...)
在您的控制器中。