如何将路由添加到 ASP.NET MVC 4 应用程序中的 RouteConfig.cs 文件以执行永久 301 重定向到另一个路由?
我希望某些不同的路线指向同一个控制器操作 - 似乎 301 是最好的做法,特别是对于 SEO?
谢谢。
如何将路由添加到 ASP.NET MVC 4 应用程序中的 RouteConfig.cs 文件以执行永久 301 重定向到另一个路由?
我希望某些不同的路线指向同一个控制器操作 - 似乎 301 是最好的做法,特别是对于 SEO?
谢谢。
您必须使用 RedirectPermanent,这是一个示例:
public class RedirectController : Controller
{
public ActionResult News()
{
// your code
return RedirectPermanent("/News");
}
}
在全球 asax 中:
routes.MapRoute(
name: "News old route",
url: "web/news/Default.aspx",
defaults: new { controller = "Redirect", action = "News" }
);
我知道您特别询问如何在 RouteConfig 上执行此操作,但您也可以使用IIS Rewrite Rules来完成相同的操作。规则存在于您的 web.config 中,因此您甚至不需要使用 IIS 来创建规则,您只需将它们添加到 web.config 并在您的所有环境(Dev、Staging、Prod、等)并保持您的 RouteConfig 清洁。它确实需要在 IIS 7 上安装 IIS 模块,但我相信它已预先安装在 7.5+ 上。
这是一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect t and c" stopProcessing="true">
<match url="^terms_conditions$" />
<action type="Redirect" url="/TermsAndConditions" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>