2013-04-01 73 views
4

我正在使用ASP.NET Web Forms構建的網站,現在使用ASP.NET MVC構建網站。ASP.NET MVC中的URL重定向

上週我們做了新的MVC版本。

但舊登錄URL是www.website.com/login.aspx得到了衆多用戶的書籤,他們仍然使用,因此他們得到404錯誤。

所以我想這將是從舊的URL將用戶重定向到新的MVC網址的最簡單,最好的辦法是www.website.com/account/login

篩選登錄網址,我期待用戶也可能已經收藏了其他幾個網址,那麼處理這個問題的最佳方式是什麼?

+0

爲什麼不保留舊頁面並從中重定向。網頁表單和MVC路線可以在同一個項目中存在... –

+0

已完全移除舊項目 – Yasser

+0

您可以在global.asax文件中檢查URL ...如果URL是www.website.com/login.aspx那麼您可以將用戶重定向到www.website.com/account/login –

回答

5

在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"); 
     } 
    } 
+1

你可以實現其他邏輯來匹配的網址以及 – 1Mayur

+1

真棒我用它做301需要的重定向。 – Spaceman

6

你可以在IIS中使用URL Rewrite module。這就像把下面的規則在你<system.webServer>節一樣簡單:

<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> 

該模塊是非常強大的,讓你任何種類的重寫和重定向。這裏有一些其他sample rules

+0

看起來不錯..... – 1Mayur