URL重写 UrlRewrite

为什么要URL重写?

1、有利于SEO,带参数的URL权重较低;
2、地址看起来更正规,推广uid

伪静态:看起来像普通页面,而非动态生成的页面。 
原理:在Global.asax的Application_BeginRequest 中读取Request.Url 得到请求的URL(View-3.aspx)
     然后用HttpContext.Current.RewritePath(ReWriteUrl)进行重写(也就是交由另外一个页面处理这个请求)(View.aspx?tid=3格式)
http://www.cnblogs.com/hd/archive/2005/06/20/177633.html 
也可以使用微软的URLRewrite,只要修改配置文件就可以进行URL重写

案例:URL重写,将 view-3.aspx之类的重写成 view.aspx?id=3

1.View.aspx.cs的设计,lbmsg 是一个服务端Lab控件

string id =  Request["id"];
       if (id != null)
          {
              int val = Convert.ToInt32(id);
              switch (val)
              {
                  case 1:
                      lbmsg.Text = "第一名!就是你!";
                      break;
                  case 2:
                      lbmsg.Text = "第二是最好的!";
                      break;
                  case 3:
                      lbmsg.Text = "虽然你是第三,我相信你能成功!";
                      break;
                  default:
                      lbmsg.Text = "革命尚未成功!同志仍需努力!";
                      break;
              }
          }

2.Global.asax 设计

protected void Application_BeginRequest(object sender, EventArgs e)
    {
       Regex reg = new Regex(@".+View-(\d+).aspx");  //定义一个正则表达式,()可用于分组
       var match = reg.Match(HttpContext.Current.Request.Url.AbsolutePath); //匹配当前用户输入的URL路径
       if (match.Success) //判断是否匹配成功
        {
          string id = match.Groups[1].Value;         //得到第一组的值
          HttpContext.Current.RewritePath("View.aspx?id=" + id);  //将页面重定向,转交请求
        }
    }

3. 当用户输入 View-3.aspx 时,自动当 View.aspx?id=3 的处理

时间: 2024-10-11 18:09:51

URL重写 UrlRewrite的相关文章

windows2008R2下iis7.5中的url重写(urlrewrite)

以前在windows2003里,使用的是iis6.0,那时常使用的URL重写组件是iisrewrite,当服务器升级到windows2008R2时,IIS成了64位的7.5,结果iisreite组件是32位的,虽然可以设置IIS支持32位程序,不过还是希望找个更好的方法,于是找到了:用于 IIS 7 (x64) 的 Microsoft URL 重写模块 2.0 ,下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7435.

ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

核心提示:大 家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的 静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度... 大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一 个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用

UrlRewrite(URL重写)--ASP.NET中的实现

概述 今天看了下URL重写的实现,主要看的是MS 的URL Rewrite. URL重写的优点有:更友好的URL,支持老版本的URL URL重写的缺点有:最主要的缺点是性能低下,因为如果要支持无后缀的URL(但更多的情况是我们要支持这种方式)就必须在IIS中配置所有的URL(包括js,css,image)都要转发到aspnet_isapi中,解决方法可以参见 慎用url重写:还有一个性能问题是,根据源代码,在匹配url时,用正则表达式尝试匹配每一个规则,直至有一个匹配成功,或都匹配不成功才结束.

网站URL重写(Java UrlRewrite 的使用)

现在大部分的网站和商城都会使用到URL重写,接触到这个,也是因为正在做的电子商务商城.URL重写,是将原有的URL采用另一种规则来显示,使得用户方便访问同时也屏蔽一些信息. 在此说下它的好处,在开发过程中,经常会遇到一些带了一大堆参数的URL,这样子,一方面显得烦乱,另一方面,一些信息直接显示在URL上,会有些安全性问题.使用URL重写,可以使带有参数的URL以一种较规则的方式体现,如: /demoAction?id=1            ==>            /demo1.html

windows2008(64位)下iis7.5中的url伪静态化重写(urlrewrite)

以前在windows2003里,使用的是iis6.0,那时常使用的URL重写组件是iisrewrite,当服务器升级到windows2008R2时,IIS成了64位的7.5,结果iisreite组件是32位的,虽然可以设置IIS支持32位程序,不过还是希望找个更好的方法,于是找到了:用于 IIS 7 (x64) 的 Microsoft URL 重写模块 2.0 , 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7435

Url Rewrite 再说Url 重写

前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL>, URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜索一下URL-Rewrite可以找到很多URL-Rewrite方面的文章和组件,自己以前也多次接触过这个东东,也来说说吧. ScottGu 有一篇非常经典的 URL-Rewrite Blog Tip/Trick: Url Rewriting with ASP.NET http://weblogs.asp.net

ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL

http://www.cnblogs.com/John-Connor/archive/2012/05/03/2478821.html 引言-- 在初级篇中,我们介绍了如何利用基于ASP.NET MVC的Web程序中的Global文件来简单的重写路由.也介绍了它本身的局限性-依赖于路由信息中的键值对: 如果键值对中没有的值,我们无法将其利用凑出我们想要的URL表达式. 初级篇传送门:使用Global路由表定制URL   在进阶篇中,我们将介绍ASP.NET 路由相关类的基类-抽象类RouteBas

【IHttpHandler】IHttpModule实现URL重写

1.用自定义IHttpModule实现URL重写 一般来说,要显示一些动态数据总是采用带参数的方式,比如制作一个UserInfo.aspx的动态页面用于显示系统的UserInfo这个用户信息表的数据,那么需要在其后带上一个参数来指定要显示的用户信息,比如UserInfo.aspx?UserId=1用于显示表中编号为1的用户的信息,如果为2则显示表中编号为2的用户信息.在一些系统中我们可能看到的不是这样的效果,可能会看到形如UserInfo2.aspx这样的形式(当然形式可以多样,只要有规律就行)

.net用url重写URLReWriter实现任意二级域名

.net用url重写URLReWriter实现任意二级域名 这两天需要用到URLReWriter来搞那个猪头的Blog,网上看到篇好文,收藏 摘要:解释了url重写的相关知识.用asp.net实现二级域名重写的方法.对重写的一些问题做了汇总解答.提供了几段示例代码. 好久没有写技术文章,如果大家看不明白,就多看几篇,汗,或者,在文章的后面回复(这是最有效的办法),我会尽力帮助大家解答疑惑. 来找这篇文章的,应该都知道什么叫二级域名吧,废话就不说了.但是讨论前,先要明白一个思想问题.很多朋友一直考