我们正在开发一个新系统来取代现有系统。
新系统是ASP.NET MVC,所以我们正常地定义控制器和操作的路由。
旧系统作为传统ASP.NET,因此URL由许多.aspx页面组成。
我们希望设置重定向,以便当用户尝试访问/Homepage.aspx
时(很多用户会将其加入书签),他们将被重定向到新系统的默认路由,这只是{{1 }}
对我来说,最好的方法是什么?
编辑:@Chance建议我指定路线:
/
这有效,但我想进行重定向,因为我不希望地址栏中有routes.MapRoute("Homepage", "Homepage.aspx", new { controller = "controller", action = "homepage" });
。还有什么我可以做的吗?
答案 0 :(得分:5)
您可以查看following blog post,其中说明了如何实现将执行301永久重定向的旧路由处理程序。
答案 1 :(得分:4)
将此代码放在global.asax文件中:
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Url.ToString().ToLower().Contains("homepage.aspx"))
{
// use RedirectPermanent for 301, or Redirect for 302
Context.Response.RedirectPermanent("/");
}
}
您可以修改此代码以应用于其他旧的“.aspx”页面。
答案 2 :(得分:1)
您可以为默认控制器/操作添加一个硬编码的附加路径。即
routes.MapRoute("Homepage", "Homepage.aspx", new { controller = "controller", action = "homepage" });
答案 3 :(得分:0)
另一种选择是简单地创建一个静态页面来用Home重定向替换HomePage.aspx。这将允许您向用户显示一条消息,通知他们该网站已更改,并敦促他们更新他们的书签。
您可以通过为404创建指向静态页面或特定URL的自定义错误处理程序,将其扩展到整个站点。