为什么要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