All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
C#教程:键盘消息的响应实例
如何在十天学内会php之第九天_[PHP教程]
delphiTab 组件(TTabControl)使用实例
asp.net2.0加密数据库连接字符串技巧_[Asp.Net教程]
简单介绍,ASP.NET,中的运算操作符_.net资料_编程技术
ASP.NET改善application对象加快存储速度_[Asp.Net教程]
一个简单例子教你揭开AJAX神秘面纱_[AJAX教程]
C#教程:读取注册表信息
三个SQL视图查出所有SQL Server数据库字典_[SQL Server教程]
动态网页制作技术PHP常用的正则表达式_[PHP教程]
Reading number is top 10 pictures
无题
西游四格漫画(一)
西游日记2
这才叫绝色美女1
浴室里的美女
中国的阶级现状
红楼梦金陵十二钗(1)
The little woman's bright wire3
如果没有好报,为什么要做好人?
全身蕾丝丝质美臀
Download software ranking
仙剑奇侠传98硬盘WINXP版
Sora aoi's film--cangkong_Blue.Sky
C#COM编程指南
Wild things 2
DreamWeaver8
SQL2000 For 4IN1
Ashlynn Video5
传奇私服架设教程-chm
变速齿轮3.26
电脑知识及技巧大合集
delv published in(发表于) 2014/1/8 7:03:57 Edit(编辑)
在虚拟主机上用asp.net轻松实现urlrewrite_[Asp.Net教程]

在虚拟主机上用asp.net轻松实现urlrewrite_[Asp.Net教程]

在虚拟主机上用asp.net轻松实现urlrewrite_[Asp.Net教程]

在网上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle+Server.Transfer的方法。其实这种方法是错误的。第一,HttpHandle是实现不了urlrewrite的;第二Server.Transfer是标准的重定向,根本不是urlrewrite。

其实,实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用几行代码就可以轻松实现。


我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改iis,也没有权限去安装iis rewrite之类的iis插件。但是我们仍然可以轻松完成需要的功能。


具体做法如下:打开global.asax.cs,定位到protected void Application_BeginRequest(Object sender, EventArgs e)。从方法名我想也能猜到它是做什么的。输入如下代码:


protected void Application_BeginRequest(Object sender, EventArgs e)
{
string oldUrl = HttpContext.Current.Request.RawUrl ;


string pattern = @"^(.+)default/(\d+)\.aspx(\?.*)*";
string replace = "1default.aspx?id=2";


if(Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
{
string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | RegexOptions.IgnoreCase);
this.Context.RewritePath(newUrl);
}
}


  有了上边这段代码,我访问一个类似:.../default/123.aspx 的网址,当然这个网址在我的电脑上不存在,它就会被定向到:.../default.aspx?id=123。


当然,利用功能强大的正则表达式,你可以任意按照自己的需要来重写url,这一切都是在服务器端默默的进行,在客户端是不会有任何察觉的。由于是在虚拟主机上,我们只能重定向.aspx文件,如果是自己的服务器,只要把后缀名在iis中注册一下,就可以实现任意后缀名的处理。比如你可以注册一个*.myweb这样的类型,这样别人访问default/456.myweb时,你可以把它重定向到default.aspx?id=456。总之一句话,只要你能想到,.net就可以帮你实现,并且这一切不需要多少的代码。


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.