不知道这个范例是否符合你要求:http://www.cnblogs.com/niuniu502/archive/2006/11/02/547862.html
MSDN也有范例:http://msdn.microsoft.com/zh-cn/library/cc668201.aspx
并附带一个英文视频:http://download.microsoft.com/download/f/d/5/fd543808-e31c-4e6c-b462-6f982cb3ebc7/HowTo-UseRoutingWebForms.wmv
1、配置web.config
<system.web>
<httpHandlers>
<add verb="*" path="*/gbk/*" type="UrlRewriter" />
<!--意思是碰到URL里边待有gbk的目录,将由类UrlRewriter来进行重新解析-->
<add verb="*" path="*/big5/*" type="UrlRewriter" />
</httpHandlers>
2、app_code下建立类:
public class UrlRewriter : IHttpHandler
{
#region IHttpHandler 成员
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext Context)
{
string _strUrl = Context.Request.Url.AbsoluteUri.ToLower();
if (_strUrl.IndexOf("gbk") > -1 || _strUrl.IndexOf("big5") > -1)
{
string _strType = "gbk";
if (_strUrl.IndexOf("big5") > -1)
{
_strType = "big5";
}
_strUrl = _strUrl.Replace("gbk/", "").Replace("big5/", "");
if (_strType == "big5")
{
//TODO 这里还可以自定义进行一些转换,或者别的操作。
Context.Response.Status = "301 Moved Permanently";
Context.Response.AddHeader("Location", _strUrl);
}
else
{
Context.Response.Status = "301 Moved Permanently";
Context.Response.AddHeader("Location", _strUrl);
}
}
else
{
Context.Response.Status = "301 Moved Permanently";
Context.Response.AddHeader("Location", _strUrl);
}
}
#endregion
}
URL重写地址重写的组件很多呀而且名字也很容易混淆,我一般使用UrlRewriter.NET
到这里下载示例:UrlRewriter.NET地址重写示例程序3阶段
UrlRewriter.NET的中文网站:http://www.urlrewriter.cn/
如果你想深入了解的话你可以阅读 JeffreyZhao 的重提URL Rewrite