我正在使用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