如何读取重写的url。如果我在重写的url中没有使用.aspx,那么'Request.RawUrl‘就不起作用了。它将返回原始URL。
如果您对此有任何解决方案,请提出建议。我正在使用离子Isapi重写过滤器(IIRF)。
例如,如果我重写:
http://<mywebsite>/users.aspx?id=12&name=amitava至
http://<mywebsite>/profile/12/amitava现在在同一个页面中,在某个时刻,我想获得这个重写的url,以便在登录链接中指向return url。现在,登录链接应该是:
http://<mywebsite>/login.aspx?ReturnUrl=/profile/12/amitava或
http://<mywebsite>/login.aspx?ReturnUrl=http://<mywebsite>/profile/12/amitava实现这一目标的正确方法是什么?谢谢。
发布于 2011-11-23 03:15:26
对于IIRF,这称为unmangling,可以通过使用修饰符U来实现。
从IIRF manual
U=将原始url存储在服务器变量HTTP_X_REWRITE_URL中
只需向您希望保留其原始url的RewriteRule添加修饰符U即可。例如:
RewriteRule ^yourexpression$ yourrewrittenurl [I,U,L] 然后,在您的页面代码中,您可以像这样访问原始url:
Request.ServerVariables("HTTP_X_REWRITE_URL")另请参阅my answer here
发布于 2011-11-22 19:32:25
您是否在使用IIS重写模块?如果是这样的话,HttpContext.Current.Request.RawUrl会给你重写的网址,HttpContext.Current.Request.Url.OriginalString会给你非重写的网址。
https://stackoverflow.com/questions/8225893
复制相似问题