我正在使用IIS Url Rewrite模塊重寫我的ASP.Net Web應用程序的URL。網址正在從改寫:Response.Redirect頁面上Url重寫的URL Url重寫模塊
http://domain/version/page.aspx
到
http://domain/company/page.aspx
和瀏覽直接使用絕對路徑,當它工作得很好。使用相對路徑在應用內導航時會出現問題。 任何種類的相對路徑。
所有相對路徑重定向到相應的http://domain/version/page.aspx
而不是它應該去的http://domain/COMPANY/page.aspx
。
我解決了很多問題的,加入這一行的BeginRequest事件在Global.asax中:
Protected Sub Application_BeginRequest(ByVal sender As Object, ByVal e As System.EventArgs)
HttpContext.Current.RewritePath(HttpContext.Current.Request.Url.AbsolutePath, True)
End Sub
本質上講,它只是基礎重建所請求的URL的虛擬路徑。
但即使使用該Response.Redirect STILL重定向到實際路徑而不是虛擬路徑。
所以這個代碼:Response.Redirect("~/test.aspx")
會重定向到domain/Version/test.aspx
而不是domain/Company/test.aspx
如何使的Response.Redirect重定向到的,而不是實際的路徑(domain/VERSION/test.aspx
)
由於虛擬路徑(domain/COMPANY/test.aspx
)。
這是我正在往下走的路......悲傷地看到它是唯一的好路徑。 – 2010-08-09 18:07:32