获取ISAPI_Rewrite重写前的URL

为站点编写的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)
X-Rewrite-URL=/10000

获取ISAPI_Rewrite重写前的URL代码:

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


评论: 0 | 引用: 0 | 查看次数: 4218
发表评论
登录后再发表评论!