`
isiqi
  • 浏览: 15998907 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

在虚拟主机上用asp.net轻松实现urlrewrite

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

分享到:
评论

相关推荐

    Asp.Net URL重写-URLReWrite

    Asp.Net的URLReWrite的源代码含详细具体的配置方法,在info.doc里。

    在ASP.net中实现基于UrlRewrite的防盗链

    在ASP.net中实现基于UrlRewrite的防盗链

    利用UrlRewrite,asp.net动态生成htm页面

    利用UrlRewrite,asp.net动态生成htm页面

    在ASP.NET中UrlRewrite的实现(仔细看哦,能隐藏扩展名)之五

    在ASP.NET中UrlRewrite的实现(仔细看哦,能隐藏扩展名)之五

    ASP.NET中实现二级或多级域名

    ASP.NET中实现二级或多级域名ASP.NET中实现二级或多级域名(修改UrlRewrite) 大家应该知道,微软的URLRewrite能够对URL进行重写,但是也只能对域名之后的部分进行重写,而不能对域名进行重写,如:可将 ...

    asp.net url重写 demo

    asp.net url重写 demo 框架 3.5 利用Intelligencia.UrlRewriter.dll组件实现url重写

    利用UrlRewrite,asp.net动态生成htm页面 下载

    利用UrlRewrite,asp.net动态生成htm页面 ~~~~~~~~~~~~~~

    ASP.NET的UrlRewrite URL重写伪静态实例

    大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站...

    ASP.NET 中执行 URL 重写实例教程

    ASP.NET 中执行 URL 重写实例教程

    .net URLRewrite

    URLRewrite动态库,项目中引用,配置webconfig,实现伪静态效果

    ASP.NET中Global和URLReWrite用法

    主要介绍了ASP.NET中Global和URLReWrite用法,较为深入浅出的分析了Global.asax的功能及配置技巧,并实例分析了URLReWrite实现伪静态的方法,需要的朋友可以参考下

    netcn_URLRewrite

    3 最重要的 在象Google Yahoo 和 Live 这样的搜索引擎中提高你网站上网页的搜索相关性 具体来说 URL重写经常能使你在你网站上">什么是UrlRewrite UrlRewrite 是 将动态页面转换为静态页面的一种技术 例如 您网站...

    ASP.net中实现基于UrlRewrite的防盗链功能

    在ASP.net中最快实现UrlRewrite的方法这篇文章中说了如何做UrlRewrite,那只是一个最简单的应用 其实利用UrlRewrite与IIS的设置我们可以实现简单而有效的防盗链功能。 假设你的站点有一个文件:web.rar,你希望只有...

    ASP.NET中URL Rewrite的具体实现方法

    您已经知道的,您还不知道的,别处已经讲过的,或者还没有讲过的,希望这系列文章的“旧事重提”不会让您觉得沉闷,并且能让您了解ASP.NET中URL Rewrite的方方面面。如果您以后再遇到URL Rewrite方面的问题是能够...

    urlrewrite.dll

    urlrewrite,实现伪静态页面,UrlRewrite技术隐藏实现细节,这样修改移植都很方便,而且完全不损失pagerank

    VC编写的URL Rewrite dll,支持 asp和asp.net

    与使用正则表达式的ISAPI Filter(简称IF)Rewrite产品不同,本IF用简单配置实现虚拟URL与实际处理的Web程序映射,优劣自鉴。以下为配置示例: [bbsfiles] ext = /bbsfiles/[*] mapto = /printinfo1.asp [aspx] ext=/...

    asp.net Urlrewriter在虚拟主机上的使用方法

    我这里介绍的是在虚拟主机上,虚拟主机不同于自己的服务器,你是没有权限去修改IIS,也没有权限去安装iis rewrite之类的IIS插件。但是我们仍然可以轻松完成需要的功能。 具体做法如下:打开global.asax.cs,定位到...

    asp.net 空间测试

    UrlRewrite伪静态测试,服务器文件操作 读,写,删除,下载远程文件,是否支持WebService,是否支持在线解压缩,上传下载测试,Cookie读写测试,JMail邮件发送测试等全方位对服务器进行测试,适合个人主机,购买的...

Global site tag (gtag.js) - Google Analytics