2014-02-13 75 views
1

我正在用一堆經典的ASP內容對遺留的ASP.NET網站進行現代化改造。但是也有一些只是重定向幾十aspaspx頁:什麼是重定向請求的最有效方式?

'this is a file called Something.aspx 
<%@ Language=VBScript %> 
<% Response.Redirect("/Something/Default.aspx", true) %> 

這些文件是整個應用程序遍野,我想在一個表中刪除所有這些文件和鞏固這種重定向邏輯的地方:

From,To 
/Something.aspx,/Something/Default.aspx 
/sub/SomeOtherThing.asp,/overhere/NewVersion.aspx 
... 

然後,在方法的Application_BeginRequest,我想我會檢查這個表,如果傳入的請求相匹配的From項,我會做重定向。但是這看起來效率很低,因爲那麼每個請求都會導致該表查找的開銷。

我也考慮過讓丟失的文件請求導致404錯誤,然後然後做查找和重定向,所以開銷只會觸及少得多的請求,但這似乎有點遺憾。

所以問題是:什麼是最好(或相當有效)的方式來完成我想要做的事情?

回答

1

您可以使用URL重寫的重寫映射功能來處理重定向。

<rewriteMap name="MyRewriteMap"> 
    <add key="a.html" value="b.html" /> 
    <add key="c.aspx" value="d.aspx" /> 
    <add key="e.php" value="f.php" /> 
</rewriteMap> 

或者,你可以實現一個HttpModule來處理重定向。從您的數據存儲加載映射並將其緩存以備將來的請求。然後根據映射檢查任何404錯誤的請求URL。只處理404錯誤比檢查每個請求更有效。

相關問題