【发布时间】:2010-08-09 15:15:21
【问题描述】:
我正在使用 IIS Url Rewrite 模块为我的 ASP.Net Web 应用程序重写 URL。正在从以下位置重写 URL:
http://domain/version/page.aspx
到
http://domain/company/page.aspx
当直接使用绝对路径浏览时它工作得很好。使用相对路径在应用程序中导航时会出现问题。 任何种相对路径。
所有相对路径都重定向到相应的http://domain/version/page.aspx,而不是它应该去的http://domain/COMPANY/page.aspx。
我通过将此行添加到 Global.asax 中的 BeginRequest 事件中解决了很多问题:
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 仍然会重定向到实际路径而不是虚拟路径。
所以这段代码:Response.Redirect("~/test.aspx") 将重定向到domain/Version/test.aspx 而不是domain/Company/test.aspx
如何使 Response.Redirect 重定向到虚拟路径 (domain/COMPANY/test.aspx) 而不是实际路径 (domain/VERSION/test.aspx)
谢谢。
【问题讨论】:
标签: asp.net iis-7 url-rewriting