CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

100求一个URL重写的实际例子(URLRewriting)

楼主chenxiang123(sa)2005-01-15 11:02:28 在 .NET技术 / ASP.NET 提问

100求一个URL重写的实际例子(URLRewriting) 问题点数:100、回复次数:23Top

1 楼smallMage(小马哥)回复于 2005-01-15 11:05:53 得分 0

学习…Top

2 楼wj2929(Rěй)回复于 2005-01-15 11:17:58 得分 0

http://www.kfnet.cn/Artical.kf?ArticalID=1739&Belong=0&Type=1     (有例子)  
   
  http://www.cnblogs.com/coollzh/archive/2004/12/11/75471.html  
   
  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/urlrewriting.asp  
   
  http://dottextwiki.scottwater.com/default.aspx/Dottext.UrlRewriting  
   
  Top

3 楼wj2929(Rěй)回复于 2005-01-15 11:19:18 得分 0

http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspxTop

4 楼chenxiang123(sa)回复于 2005-01-15 11:36:25 得分 0

<?xml   version="1.0"   encoding="utf-8"   ?>  
  <configuration>  
  <configSections>  
  <section   name="RewriterConfig"   type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,   URLRewriter"   />  
  </configSections>  
  <RewriterConfig>  
  <Rules>  
  <RewriterRule>  
  <LookFor>~/News/c(\d{1,5})\.aspx</LookFor>  
  <SendTo>~/News/NewsList.aspx?Cat_ID=$1</SendTo>  
  </RewriterRule>  
  <RewriterRule>  
  <LookFor>~/News/d(\d+)\.aspx</LookFor>  
  <SendTo>~/News/NewsDetails.aspx?News_ID=$1</SendTo>  
  </RewriterRule>  
  </Rules>  
  </RewriterConfig>  
  <system.web>  
  <httpModules>  
  <add   type="URLRewriter.ModuleRewriter,   URLRewriter"   name="ModuleRewriter"   />  
  </httpModules>  
  <compilation   defaultLanguage="c#"   debug="true"   />  
  <customErrors   mode="RemoteOnly"   />  
  <authentication   mode="Windows"   />  
  <authorization>  
  <allow   users="*"   />  
  </authorization>  
  <trace   enabled="false"   requestLimit="10"   pageOutput="false"   traceMode="SortByTime"   localOnly="true"   />  
  <sessionState   mode="InProc"   stateConnectionString="tcpip=127.0.0.1:42424"   sqlConnectionString="data   source=127.0.0.1;Trusted_Connection=yes"  
  cookieless="false"   timeout="20"   />  
  <globalization   requestEncoding="utf-8"   responseEncoding="utf-8"   />  
  </system.web>  
  </configuration>  
   
   
  分析器错误信息:   找不到文件或程序集名称“URLRewriter”,或找不到它的一个依赖项。  
   
  源错误:    
   
   
  行   18:   <system.web>  
  行   19:   <httpModules>  
  行   20:   <add   type="URLRewriter.ModuleRewriter,   URLRewriter"   name="ModuleRewriter"   />  
  行   21:   </httpModules>  
  行   22:   <compilation   defaultLanguage="c#"   debug="true"   />  
     
  Top

5 楼chenxiang123(sa)回复于 2005-01-15 11:37:48 得分 0

谁能给我一个实际的例子.  
  我的邮箱c.x.friday@163.com  
  100不够,我还可以给100分.  
  非常感谢大家.  
  问题比较急了.Top

6 楼camelials(星期五)回复于 2005-01-15 11:46:12 得分 20

微软那里就有例子啊.  
  我这里有测试的,要的话给你.Top

7 楼hunter_32(曠野裡奔嘯的狼)回复于 2005-01-15 11:54:02 得分 0

先取得地址在修改後重定向!  
  string   url   =   this.Request.Url.ToString();           //取得  
  url   =   url.Replace("index1.aspx","index.aspx");//修改  
  Page.Response.Redirect(url);                                     //蟲定向  
  這是我用到的一個方法!Top

8 楼chenxiang123(sa)回复于 2005-01-15 12:27:09 得分 0

我不太明白<RewriterConfig>  
  我的应用有是例如十位的编码例如:0000000001.请问<RewriterRule>  
  怎么写.  
  Top

9 楼Aimar168(跟着微软走,牵着太阳的手)回复于 2005-01-15 12:34:12 得分 0

markTop

10 楼chenxiang123(sa)回复于 2005-01-15 12:57:04 得分 0

顶的有分..........Top

11 楼11262215(鬼扯)回复于 2005-01-15 12:59:21 得分 0

UP,  
  学习~!Top

12 楼jiangd(jiangd)回复于 2005-01-15 13:17:20 得分 0

学习Top

13 楼mf_2004(魔方)回复于 2005-01-15 13:38:47 得分 0

upTop

14 楼wula0010(wula0010)回复于 2005-01-15 13:51:09 得分 0

up  
  Top

15 楼chenxiang123(sa)回复于 2005-01-15 14:38:05 得分 0

配置:  
  <RewriterConfig>  
        <Rules>  
  <RewriterRule>  
          <LookFor>~/(\d{10})\.aspx</LookFor>  
            <SendTo>~/ShopTopic.aspx?TI_SN=$1</SendTo>  
                      </RewriterRule>  
        </Rules>  
  </RewriterConfig>  
  完成:  
  http://localhost/Test4RewriteUrl/ShopTopic.aspx?TI_SN=0000000133  
  http://localhost/Test4RewriteUrl/0000000133.aspx  
  之间的转换  
   
  我想完成  
  http://localhost/Test4RewriteUrl/ShopTopic.aspx?TI_SN=0000000133  
  http://localhost/Test4RewriteUrl/0000000133.html  
  之间的转换  
  修改:  
  <RewriterConfig>  
        <Rules>  
  <RewriterRule>  
          <LookFor>~/(\d{10})\.html</LookFor>  
            <SendTo>~/ShopTopic.aspx?TI_SN=$1</SendTo>  
                      </RewriterRule>  
        </Rules>  
  </RewriterConfig>  
   
  为什么无效呢?  
  我的机器是Server2003的.  
  请问是不是要配置什么????  
  Top

16 楼rijcm(rijcm)回复于 2005-01-15 14:43:28 得分 0

学习!!Top

17 楼chenxiang123(sa)回复于 2005-01-15 14:48:42 得分 0

配置:  
  <RewriterConfig>  
        <Rules>  
  <RewriterRule>  
          <LookFor>~/(\d{10})\.aspx</LookFor>  
            <SendTo>~/ShopTopic.aspx?TI_SN=$1</SendTo>  
                      </RewriterRule>  
        </Rules>  
  </RewriterConfig>  
  完成:  
  http://localhost/Test4RewriteUrl/ShopTopic.aspx?TI_SN=0000000133  
  http://localhost/Test4RewriteUrl/0000000133.aspx  
  之间的转换  
   
  我想完成  
  http://localhost/Test4RewriteUrl/ShopTopic.aspx?TI_SN=0000000133  
  http://localhost/Test4RewriteUrl/0000000133.html  
  之间的转换  
  修改:  
  <RewriterConfig>  
        <Rules>  
  <RewriterRule>  
          <LookFor>~/(\d{10})\.html</LookFor>  
            <SendTo>~/ShopTopic.aspx?TI_SN=$1</SendTo>  
                      </RewriterRule>  
        </Rules>  
  </RewriterConfig>  
   
  为什么无效呢?  
  我的机器是Server2003的.  
  请问是不是要配置什么????  
  最后的一个小问题了.  
  ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆Top

18 楼chenxiang123(sa)回复于 2005-01-17 08:14:02 得分 0

配置:  
  <RewriterConfig>  
        <Rules>  
  <RewriterRule>  
          <LookFor>~/(\d{10})\.aspx</LookFor>  
            <SendTo>~/ShopTopic.aspx?TI_SN=$1</SendTo>  
                      </RewriterRule>  
        </Rules>  
  </RewriterConfig>  
  完成:  
  http://localhost/Test4RewriteUrl/ShopTopic.aspx?TI_SN=0000000133  
  http://localhost/Test4RewriteUrl/0000000133.aspx  
  之间的转换  
   
  我想完成  
  http://localhost/Test4RewriteUrl/ShopTopic.aspx?TI_SN=0000000133  
  http://localhost/Test4RewriteUrl/0000000133.html  
  之间的转换  
  修改:  
  <RewriterConfig>  
        <Rules>  
  <RewriterRule>  
          <LookFor>~/(\d{10})\.html</LookFor>  
            <SendTo>~/ShopTopic.aspx?TI_SN=$1</SendTo>  
                      </RewriterRule>  
        </Rules>  
  </RewriterConfig>  
   
  为什么无效呢?  
  我的机器是Server2003的.  
  请问是不是要配置什么????  
  最后的一个小问题了.  
  ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆Top

19 楼Study_Now( ? )回复于 2005-01-17 08:51:57 得分 0

upTop

20 楼camelials(星期五)回复于 2005-01-18 08:22:39 得分 40

如果重写为其他的类型,IIS中需要添加请求的驱动为aspnetapi.Top

21 楼AdNT()回复于 2005-01-18 08:37:08 得分 40

打开   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))  
  {  
  strNewUrl   =   Regex.Replace(strRawUrl,   @"default.aspx",   @"showforum.aspx\?fld=1");  
   
  HttpContext.Current.RewritePath(   strNewUrl   );  
  }  
  else   if   (Regex.IsMatch(strRawUrl,   @"(\d+)0(\d+)0(\d+)0(\d+).html",   RegexOptions.IgnoreCase))  
  {  
  strNewUrl   =   Regex.Replace(strRawUrl,   @"(\d+)0(\d+)0(\d+)0(\d+).html",   @"showtopic.aspx\?tid=$1&tpg=$2&bpg=$3&fld=$4");  
   
  HttpContext.Current.RewritePath(   strNewUrl   );  
  }  
  else   if   (Regex.IsMatch(strRawUrl,   @"showtopic.aspx\?tid=(\d+)&tpg=(\d+)&bpg=(\d+)&fld=(\d+)",   RegexOptions.IgnoreCase))  
  {  
  strNewUrl   =   Regex.Replace(strRawUrl,   @"showtopic.aspx\?tid=(\d+)&tpg=(\d+)&bpg=(\d+)&fld=(\d+)",   @"$10$20$30$4.html");  
   
  HttpContext.Current.Response.Redirect(   strNewUrl   );  
  }  
   
  第一个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  
   
  楼主,我说的清楚么?^^Top

22 楼AdNT()回复于 2005-01-18 08:40:10 得分 0

如果是把重写规则保存XML文件里,可以直接用DataSet读取出来,然后用for循环,找到了匹配的就跳出来Top

23 楼AdNT()回复于 2005-01-18 08:42:03 得分 0

忘记说,楼主记得要把DataSet缓存,不然每次都要读取XML  
   
  倒,三连了……Top

相关问题

  • 哪位能给我一个URL重写的实际例子(URLRewriting)
  • url重写
  • 有关url重写
  • url重写的问题??
  • 什么时URL重写
  • 如何实现URL重写?
  • 请问如何重写URL地址?
  • 为什么我不能重写URL?
  • URL 重写出现的问题 --------------------------求教?
  • 高手请进,关于url重写

关键词

  • asp.net
  • server2003
  • ti
  • 转换
  • 修改
  • html
  • server
  • shoptopic
  • strrawurl
  • urlrewriter

得分解答快速导航

  • 帖主:chenxiang123
  • camelials
  • camelials
  • AdNT

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo