如何在asp.net 3.5中读取重写的url

时间:2011-11-22 11:16:52

标签: asp.net url-rewriting iirf

如何阅读重写的网址。如果我不在我的重写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

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

2 个答案:

答案 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应该为您提供不重写的网址。