如何阅读重写的网址。如果我不在我的重写URL中使用.aspx,那么'Request.RawUrl'不起作用。它将返回原始网址。
如果您有任何解决方案,请建议。我正在使用Ionics Isapi Rewrite Filter(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
实现这一目标的正确方法是什么?感谢。
答案 0 :(得分:1)
对于IIRF,这称为 unmangling ,可以使用修饰符U
来实现。
来自IIRF manual:
U =将原始网址存储在服务器中 变量HTTP_X_REWRITE_URL
只需将修饰符U
添加到您要保留原始网址的RewriteRule
即可。例如:
RewriteRule ^yourexpression$ yourrewrittenurl [I,U,L]
然后,在您的网页代码中,您可以访问原始网址:
Request.ServerVariables("HTTP_X_REWRITE_URL")
另请参阅我的answer here
答案 1 :(得分:0)
您使用的是IIS重写模块吗?
如果您是HttpContext.Current.Request.RawUrl
,则应该为您提供重写的网址,HttpContext.Current.Request.Url.OriginalString
应该为您提供不重写的网址。