当前位置:首页>> 网站建设知识>> 网站建设知识

全文搜索

精华导读

·网站知识:虚拟中的真实:虚拟主机应用初探
·如何做好互联网的策划
·自动分词与中文搜索引擎
·网页文章的优化
·网站的一些基础小知识
·把网站变成卖场
·细说选择.cn域名的七大理由
·网站性感域名十大原则
·大型商务网站的SEO优化误区
·导致搜索引擎收录困难的5种原因
·网站建设中meta标签之详解
·网页制作中Web网页安全色谱
·网页设计中HTML常范的五个错误
·如何建立网站地图(site map)
·网站建设时如何选购虚拟主机?
·中国国家顶级域名和国际域名有什么区别?
·企业建设网站域名可以使用哪些字?
·建设网站时企业如何准备建网站资料?
·DIV+CSS建立标准WEB网页的好处

最新发表

·两个简单方法加速DataGridView
·ASP编程:Sub和Function过程的比较
·SEM渐成电子商务主流营销模式
·消费者才是网络营销的王道
·WEB2.0下如何进行免费营销
· 新媒体营销观察:数字营销70/20/10法则
·网络营销:如何利用百度空间推广网站
·PHP技巧:PHP脚本编程中的文件系统函数库
·PHP技巧:详解phplib模板使用过程及运行原理
·PHP技巧:优化动态网页技术PHP程序的12条技巧
·ASP教程:堵住ASP漏洞
·ASP教程,ASP实现防盗链的方法
·asp实现语音上传
·ASP实现不存在的网页就自动发送邮件
·asp实现在web中显示电子表格数据(三)创建数据表列表和名字范围
·动态网页技术PHP和JS实现交互的一个例子
·运用CSS实现自动换行
·自定义网页超链接下划线的CSS代码
·word-wrap和word-break的区别(兼容 IE 和 FF 的换行)

虚拟主机上用Asp.net实现Urlrewrite

文章来源:网站知识 文章编辑:admin 添加时间:2009-1-14 13:58:30

在网上看到,很多朋友在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就可以帮你实现,并且这一切不需要多少的代码。

[ ]

首页 评论 打印 刷新 返回顶部 关闭
【相关文章】  【相关评论】
两个简单方法加速DataGridView
ASP.NET 程序中常用的三十三种代码
在.net开发中几个重要的认识误区