首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在asp.net 3.5中读取重写的url

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

Stack Overflow用户
提问于 2011-11-22 19:16:52
回答 2查看 2.4K关注 0票数 0

如何读取重写的url。如果我在重写的url中没有使用.aspx,那么'Request.RawUrl‘就不起作用了。它将返回原始URL。

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

例如,如果我重写:

代码语言:javascript
复制
http://<mywebsite>/users.aspx?id=12&name=amitava

代码语言:javascript
复制
http://<mywebsite>/profile/12/amitava

现在在同一个页面中,在某个时刻,我想获得这个重写的url,以便在登录链接中指向return url。现在,登录链接应该是:

代码语言:javascript
复制
http://<mywebsite>/login.aspx?ReturnUrl=/profile/12/amitava

代码语言:javascript
复制
http://<mywebsite>/login.aspx?ReturnUrl=http://<mywebsite>/profile/12/amitava

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-23 03:15:26

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

IIRF manual

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

只需向您希望保留其原始url的RewriteRule添加修饰符U即可。例如:

代码语言:javascript
复制
RewriteRule ^yourexpression$ yourrewrittenurl [I,U,L] 

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

代码语言:javascript
复制
Request.ServerVariables("HTTP_X_REWRITE_URL")

另请参阅my answer here

票数 1
EN

Stack Overflow用户

发布于 2011-11-22 19:32:25

您是否在使用IIS重写模块?如果是这样的话,HttpContext.Current.Request.RawUrl会给你重写的网址,HttpContext.Current.Request.Url.OriginalString会给你非重写的网址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8225893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档