ASP.NET MVC中的URL重定向

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添加了书签,那么处理

我在一个网站上工作,这个网站早期是用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中

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重定向。