出处:http://hi.baidu.com/%BA%EC%C3%F1/blog/item/68025ee7807f972cb83820fb.html
只需要在Global.asax加上几行代码就行了,我们是通过捕获用户的请求,然后通过RewritePath来实现的:
这是我程序中的一段代码,它就负责把上面的那些请求转化为真正的页面请求,
我们是通过正则表达式来区分各种类别的请求的:
{
string url= Request.Url.AbsoluteUri ;
string strMatch= @"http://www/.2shoushichang/.com/([^/]+)/" ;
string newUrl= "" ;
string strCmd= SplitInfo(url,strMatch) ;
if (strCmd!= null)
{
switch(strCmd.ToLower())
{
case"product":
strMatch= @"/product/(/d+)/.aspx" ;
string strProductId= SplitInfo(url,strMatch) ;
if (strProductId!= null)
{
newUrl= string.Format("..//Product.aspx?id={0}",strProductId) ;
this.Context.RewritePath(newUrl) ;
}
break ;
case"midtype"://s-100100-All-2.aspx
strMatch= @"/midtype/(/S+-/d+-/S+-/d+)/.aspx" ;
string strResult= SplitInfo(url,strMatch) ;
if (strResult!= null)
{
string[] strParam= strResult.Split('-') ;//MidtypeList.aspx?id=100100&city=威海&type=s&Page=3
if (strParam.Length!= 4)
break ;
string city= AppGlobal.GetCityNameByCode(strParam[2]) ;
newUrl= string.Format("..//MidtypeList.aspx?type={0}&id={1}&city={2}&page={3}",strParam[0],strParam[1],city,strParam[3]) ;
this.Context.RewritePath(newUrl) ;
}
break ;
case"其它处理":
break;
default:
break ;
}
}
}