一个URL重写的例子
2005-09-04 13:47
204 查看
打开 Global.asax.cs 在最上面添加一行 using System.Text.RegularExpressions;
然后在 Application_BeginRequest 事件中写入
string strRawUrl = HttpContext.Current.Request.RawUrl;
string strNewUrl;
if (Regex.IsMatch(strRawUrl, @"default.aspx", RegexOptions.IgnoreCase))
else if (Regex.IsMatch(strRawUrl, @"(\d+)0(\d+)0(\d+)0(\d+).html", RegexOptions.IgnoreCase))
else if (Regex.IsMatch(strRawUrl, @"showtopic.aspx\?tid=(\d+)&tpg=(\d+)&bpg=(\d+)&fld=(\d+)", RegexOptions.IgnoreCase))
第一个IF是最最简单的
第二个IF是当IIS把HTML交给ASP.NET时使用的,嘿嘿
第三个IF是为了解决表单提交时IE的地址栏出现真实的URL地址,是第二个IF的逆操作
其中正则表达式里的0是分隔符,因为页数、ID的最小址都不可能是0
用户IE的地址栏中显示的是http://localhost/AdNT/4561230100101.html
但实际上是http://localhost/AdNT/showtopic.aspx?tid=456123&tpg=10&bpg=1&fld=1
然后在 Application_BeginRequest 事件中写入
string strRawUrl = HttpContext.Current.Request.RawUrl;
string strNewUrl;
if (Regex.IsMatch(strRawUrl, @"default.aspx", RegexOptions.IgnoreCase))
else if (Regex.IsMatch(strRawUrl, @"(\d+)0(\d+)0(\d+)0(\d+).html", RegexOptions.IgnoreCase))
else if (Regex.IsMatch(strRawUrl, @"showtopic.aspx\?tid=(\d+)&tpg=(\d+)&bpg=(\d+)&fld=(\d+)", RegexOptions.IgnoreCase))
第一个IF是最最简单的
第二个IF是当IIS把HTML交给ASP.NET时使用的,嘿嘿
第三个IF是为了解决表单提交时IE的地址栏出现真实的URL地址,是第二个IF的逆操作
其中正则表达式里的0是分隔符,因为页数、ID的最小址都不可能是0
用户IE的地址栏中显示的是http://localhost/AdNT/4561230100101.html
但实际上是http://localhost/AdNT/showtopic.aspx?tid=456123&tpg=10&bpg=1&fld=1
相关文章推荐
- 一个URL重写的例子
- 一个URL重写的例子
- 一个简单的ATL的例子 url
- 一个重写Page基类的例子
- 一个js获取url参数的例子,贴一贴
- 在ASP.NET MVC 中,一个简单的例子让 URL 请求的 controller 和 action 小写
- 关于enum ,调用webservice,用户控件与主页面之间的交互,datsource属性,net面试题,反射类生成sql语句,URl重写一个小实例
- url重写小例子
- 一个使用HttpWebRequest类下载指定URL网页的例子
- Apache Rewrite重写模块(一):一个入门的例子
- 一个简单的ATL的例子 url
- 一个重写Page基类的例子
- 一个完整的ASP.NET 2.0 URL重写方案[翻译]
- 一个完整的 ASP.NET 2.0 URL 重写方案
- Spring MVC:使用SimpleUrlHandlerMapping的一个简单例子
- 用C实现一个访问url资源下载的小例子
- nginx服务器中url重写rewrite参数和例子
- HttpURLConnection通信的一个小例子
- php部分--面向对象三大特性-封装(另加连续调用的一个例子)、继承(重写、重载的例子)、多态;
- 一个完整的ASP.NET 2.0 URL重写方案[翻译]