ASP.net的RUL重写http://www.cnblogs.com/hd/archive/2005/06/20/177633.html

转载 2007年10月08日 16:24:00
 
有关于URL的重写,本文也只是拿来主意。相继有MS的组件“URLRewriter”和在Global.asax里的“Application_BeginRequest()”编码方式,以及IIS里的ISAPI设置。
娜列下来,实现方法也都很简单。
 
方法一:MS组件
这里也不用详解了,相关请看:
用法很简单,只需要把组件URLRewriter.dll拷到应用程序的bin目录下,然后在web.config下加入如下代码:
<configuration></configuration>中加入:
     <configSections>
          <sectionname="RewriterConfig"type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
     </configSections>
    
     <RewriterConfig>
          <Rules>
              <RewriterRule>
                   <LookFor>~/(/d{4})/(/d{2})/Default/.aspx</LookFor>
                   <SendTo>~/Default.aspx?ID=$1</SendTo>
              </RewriterRule>
          </Rules>
     </RewriterConfig>

然后在<system.web></system.web>中加入:

<httpHandlers>
   <addverb="*"path="*.aspx"
        type="URLRewriter.RewriterFactoryHandler, URLRewriter"/>
</httpHandlers>
 
最后在地址栏上键入:http://localhost/Test/2004/12/News.aspx
效果出来了。
上面的<LookFor>~/(/d{4})/(/d{2})/News/.aspx</LookFor>这句这正则表达式URL,即被重写的URL,而<SendTo>~/Default.aspx?ID=$1</SendTo>这一句为原始URL地址。其中的$1为第一个正则表达式值(上面例子为:2004),以此类推,第二个即为$2 
 
方法二:Application_BeginRequest()
在应用程序中新建一个XML文件,文件内容为:文件名ReWriter.config
<?xmlversion="1.0"encoding="utf-8"?>
<ReWriterUrls>
     <rule>
          <old>(.*)/News/(/d{4})/Default/.aspx</old>
          <new>../../Default.aspx?id=$2&amp;type=$3</new>
     </rule>
</ReWriterUrls>
在Global.asax文件中的Application_BeginRequest(Object sender, EventArgs e)加入代码:
              try
              {
                   string path=Server.MapPath("~/ReWriter.config");
                   XPathDocument myXPathDocument = new XPathDocument(path);
                   XPathNavigator myXPathNavigator = myXPathDocument.CreateNavigator();
                   XPathNodeIterator myXPathNodeIterator = myXPathNavigator.Select ("//rule");
                   System.Text.RegularExpressions.Regex oReg;
                   string ReWriteUrl;
                   while (myXPathNodeIterator.MoveNext())
                   {
                        //oReg=new Regex(oNode.SelectSingleNode("url/text()").Value);
                        XPathNavigator nav2 = myXPathNodeIterator.Current.Clone();
                       string oldString="",newString="";
                        XPathNodeIterator it2 = nav2.Select("old");
                        while(it2.MoveNext())
                       {
                            oldString = it2.Current.Value;
                            break;
                       }
                       it2 = nav2.Select("new");
                        while(it2.MoveNext())
                       {
                            newString = it2.Current.Value;
                            break;
                       }
                        if(oldString != "" && newString != "")
                       {
                            oReg = new System.Text.RegularExpressions.Regex(oldString);
                            if(oReg.IsMatch(Request.Url.ToString()))
                            {
                                 ReWriteUrl = oReg.Replace(Request.Url.ToString(),newString);
                                 HttpContext.Current.RewritePath(ReWriteUrl);
                                 break;
                            }
                       }
                   }
              }
              catch
              {
              }
 
最后在地址栏上键入:http://localhost/Test/News/2004/Default.aspx
效果出来了。
 

create samba server

1. install samba sudo apt-get install samba sudo apt-get install cifs-utils sudo apt-get install sam...
  • Decisiveness
  • Decisiveness
  • 2016-04-03 12:22:14
  • 174

K-means均值聚类算法的原理与实现

转自:http://blog.csdn.net/xiaolewennofollow/article/details/45541159 K-均值聚类算法的原理与实现 聚类是一种无监督的学习,它将相似的对...
  • u011331731
  • u011331731
  • 2017-06-02 09:48:57
  • 466

.net中用户域帐号进行验证

http://www.cnblogs.com/flier/archive/2005/04/27/55266.html
  • amandar
  • amandar
  • 2005-09-27 17:19:00
  • 1012

混合高斯模型Gaussian Mixture Model(GMM)的EM(Expectation Maxium)求解代码

原帖请见:http://www.matrixq.net/2011/09/10218.html 与GMM有关的matlab和c代码可以参见: (matlab+c)https://engine...
  • interxuxing
  • interxuxing
  • 2012-09-03 17:15:54
  • 1806

http详解(http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html)

当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We...
  • uestcyao
  • uestcyao
  • 2012-08-10 11:26:05
  • 13668

html5中常用的一些功能

1,context.createRadialGradient这个方法的使用 http://imatlas.com/posts/canvas-createradialgradient/ 2,html5...
  • xieshuhi_2013
  • xieshuhi_2013
  • 2016-06-23 21:41:51
  • 306

C-结构体之位域(位段)

 http://www.cnblogs.com/bigrabbit/archive/2012/09/20/2695543.html
  • Tiancaizhaohaiwei
  • Tiancaizhaohaiwei
  • 2016-06-01 10:22:37
  • 348

Apache程序包编译安装的过程分享

 Apache程序包编译安装的过程A、安装前准备工作:        1、Apache 最新版本源代码的获取地址如下,下载对应压缩格式源码。             下载地址1        2、核实...
  • yzzsjc2008
  • yzzsjc2008
  • 2018-03-17 11:20:49
  • 41

WPF-Win8树节点效果-源码

  • 2014年03月26日 11:07
  • 52KB
  • 下载

ASP.Net WebForm的发布(图解)

  • 2013年05月20日 16:28
  • 1.26MB
  • 下载
收藏助手
不良信息举报
您举报文章:ASP.net的RUL重写http://www.cnblogs.com/hd/archive/2005/06/20/177633.html
举报原因:
原因补充:

(最多只允许输入30个字)