只需要在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 ;
}
}
}