如何设置MVC路线来处理旧的ASP经典页面重定向

问题描述:

我正在将ASP经典网站迁移到ASP.net MVC。
有没有办法将旧流量重定向到新流量?如何设置MVC路线来处理旧的ASP经典页面重定向

例如:如何去从:

www.mydomain.com/viewpage.asp?pageid=1234 

到:

www.mydomain.com/page/1234 

研究我发现,最好的办法是把问题:

  1. 使用重定向引擎(如urlrewriter.net
  2. 重定向中的BeginRequest方法

我结束了使用#2,因为它对我的项目更简单

Sub Application_BeginRequest(ByVal sender As Object, _ 
             ByVal e As System.EventArgs) 
    Dim fullOriginalpath As String = Request.Url.ToString.ToLower 

    If (fullOriginalpath.Contains("/viewpage.asp?pageid=")) Then 
     Context.Response.StatusCode = 301 'issue a permanent redirect' 
     Context.Response.Redirect("/page/" + getPageIDFromPath(fullOriginalpath)) 
    End If 

End Sub 

您也可以使用Context.RewritePath,但它不会更改客户端浏览器中的网址。

看样子你可能在404错误页面,使用Response.Redirect并映射输入到查询字符串所需的新页面。四围的方式,但工作

+0

是的,这也可以。 – 2009-06-26 19:17:21