木子屋 Dnawo's BLOG

获取ISAPI_Rewrite重写前的URL

👤 dnawo 📅 2011-02-25 👁 4879 👍 0 💬 0 🔄 来源:本站原创
为站点编写的ISAPI_Rewrite规则如下:

RewriteRule /(\d{5}) /User/Default.aspx?id=$1

当访问http://localhost/10000时,ISAPI_Rewrite会将其重写到真实地址http://localhost/User/Default.aspx?id=10000中,怎么得到重写前的地址呢?使用Request.Url,得到的是真实地址,百度后知道ISAPI_Rewrite会添加一个HTTP头X-Rewrite-URL

Connection=Keep-Alive
Accept=*/*
Accept-Encoding=gzip, deflate
Accept-Language=zh-CN
Cookie=ASP.NET_SessionId=01k32j45pobhx545mdc5r245
Host=localhost
User-Agent=Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2)
[color=Red]X-Rewrite-URL=/10000[/color]

获取ISAPI_Rewrite重写前的URL代码:

protected string GetRewriteUrl()
{
    return "http://" + Request.Headers["Host"] + Request.Headers["X-Rewrite-URL"];
}

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 wap站防刷原理 下一篇 → 不要困在自己建造的盒子里——写给.NET程序员