0

如何阅读重写的 url。如果我在重写的 url 中不使用 .aspx,则“Request.RawUrl”不起作用。它正在返回原始 URL。

如果您对此有任何解决方案,请提出建议。我正在使用 Ionics Isapi 重写过滤器 (IIRF)。

例如,如果我重写:

http://<mywebsite>/users.aspx?id=12&name=amitava

http://<mywebsite>/profile/12/amitava

现在在同一页面中,在某个时候,我想获取这个重写 url,以便在登录链接中指向返回 url。现在登录链接应该是:

http://<mywebsite>/login.aspx?ReturnUrl=/profile/12/amitava

或者

http://<mywebsite>/login.aspx?ReturnUrl=http://<mywebsite>/profile/12/amitava

实现这一目标的正确方法是什么?谢谢。

4

2 回答 2

1

对于 IIRF,这称为unmangling,可以通过使用修饰符来实现U

来自IIRF 手册

U = 将原始 url 存储在服务器变量 HTTP_X_REWRITE_URL 中

只需将修饰符添加URewriteRule您想要保留原始 url 的位置。例如:

RewriteRule ^yourexpression$ yourrewrittenurl [I,U,L] 

然后,在您的页面代码中,您可以像这样访问原始 url:

Request.ServerVariables("HTTP_X_REWRITE_URL")

另请参阅我的答案here

于 2011-11-22T19:15:26.133 回答
0

你在使用 IIS 重写模块吗?如果你是那么HttpContext.Current.Request.RawUrl应该给你重写的 URL,并且HttpContext.Current.Request.Url.OriginalString应该给你非重写的 URL。

于 2011-11-22T11:32:24.883 回答