ASP.NET MVC中的URL重定向
我在一个网站上工作,这个网站早期是用ASP.NET Web表单构建的,现在是用ASP.NET MVC构建的 我们上周发布了新的MVC版本 但是旧的登录url(www.website.com/login.aspx)已经被许多用户标记为书签,他们仍然使用它,因此他们会收到404个错误 因此,我想知道将用户从旧url重定向到新mvc url的最简单、最好的方法是什么,即www.website.com/account/login 像这个登录url一样,我希望用户可能也为其他几个url添加了书签,那么处理这个问题的最佳方法是什么呢 在global.asax中ASP.NET MVC中的URL重定向,asp.net,asp.net-mvc-4,asp.net-mvc-routing,webforms,Asp.net,Asp.net Mvc 4,Asp.net Mvc Routing,Webforms,我在一个网站上工作,这个网站早期是用ASP.NET Web表单构建的,现在是用ASP.NET MVC构建的 我们上周发布了新的MVC版本 但是旧的登录url(www.website.com/login.aspx)已经被许多用户标记为书签,他们仍然使用它,因此他们会收到404个错误 因此,我想知道将用户从旧url重定向到新mvc url的最简单、最好的方法是什么,即www.website.com/account/login 像这个登录url一样,我希望用户可能也为其他几个url添加了书签,那么处理
void Application_BeginRequest(Object source, EventArgs e)
{
//HttpApplication app = (HttpApplication)source;
//HttpContext context = app.Context;
string reqURL = HttpContext.Current.Request.Url;
if(String.compare(reqURL, "www.website.com/login.aspx")==0)
{
Response.Redirect("www.website.com/account/login");
}
}
您可以在IIS中使用。只需将以下规则放入
部分即可:
<system.webServer>
<rewrite>
<rules>
<rule name="Login page redirect" stopProcessing="true">
<match url="login.aspx" />
<action type="Redirect" redirectType="Permanent" url="account/login" />
</rule>
</rules>
</rewrite>
...
</system.webServer>
.为什么不保留旧页面并从中重定向。web表单和mvc路由可以存在于同一个项目中…已完全删除旧项目您可以在global.asax文件中检查url…如果url为www.website.com/login.aspx,则您可以将用户重定向到www.website.com/account/login这是url还是仅仅是一个受到青睐的恶意页面?如果是第二种情况,请重新创建一个webforms页面(登录)以及任何其他受欢迎的潜在用户,并让他们重定向到最新和最棒的……您也可以实现其他逻辑来匹配url。我使用它来执行所需的301重定向。