zoukankan      html  css  js  c++  java
  • 在ASP.Net2.0中实现UrlReWriter技术

    关注UrlReWriter技术很久了,首先就是在博客园里接触到的,之后在其他博客网站也看到了相应的应用。
    UrlReWriter,简单的例子就是譬如将Article.Aspx?ArticleID=20类似的地址转成一个虚拟地址,比如Article20.htm或者Article/20.htm,这样浏览器读Article20.htm或Article/20.htm这个地址就可以将它转向真实的地址Article.Aspx?ArticleID=20。
     
    这样做的好处是便于搜索引擎搜索到这篇文章的内容,也有利于用户理解网页地址便于记忆,也安全,隐藏了真实地址。
     
    之前就看到了微软MSDN里关于UrlReWriter的介绍,不过语言晦涩,生硬难懂,以至于后来放弃了对它的研究。后来也看过别人写的一些总结,了解到可以用一个DLL组件引用,不用再自己写程序去实现UrlReWriter了。今天突然想用在主页大巴里面,于是再次拿起来,发现用组件实现起来非常简单。
     
    组件我了解到的有两个,一个是微软的UrlReWriter.DLL,一个是 老外写的开源,专提供Asp.Net2.0的UrlRewritingNet,正合我意,呵呵。
    使用方法都是网上搜的,别人写的http://www.hzpal.com/Discuss/DotNet/459.aspx(其实是博客园里的人写的,只不过今天博客园打不开)。我总结一下。
     
    1.将UrlRewritingNet.UrlRewriter.dll拷到bin目录下
    2.在web.config里进行相关的配置
    3.拷贝urlrewritingnet.xsd文件(这一步我没做,因为别人也没写拷到哪里,不过似乎没影响,有问题再说,呵呵)
    4.定义Url重写规则(就是你Aspx文件中的链接改成重写后的地址,我的理解是这个意思)
     
    管它的呢,反正能实现就对头。解释:
    <add name="Rewrite"  virtualUrl="^~/(.*)/Detail(.*).htm"  rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Default.aspx?type=$1&amp;id=$2" ignoreCase="true" />
    里(.*)表示参数,也就是重写后的地址格式,比如Detail(.*).aspx就可以将Detail1.Aspx转成真实地址。$1表示第1个参数。这里参数是遵循规则式写法的,比如(.[0-9]*)表示数字。

    此外还要在IIS\你的站点\属性\主目录\配置\映谢 加入一个和aspx 页面的配置相同的扩展名项htm。注意“确认文件是否存在”不要勾选,否则会出现找不到文件。
     
     最后一步是将Aspx页中输出的地址那里改成相应的重写地址,比如<a href=Detail<%# DataBinder.Eval(Container,"DataItem.ID")%>.htm>
     
    我经过以上几步就可以实现UrlReWriter了。
    不过据说放了DATAGRID,有分页的,你点到下一页就发现,晕倒,又出问题了。不过俺没碰到。
    如果你碰到的话,可以参考这里: http://www.dowebs.net/forums/index.php?showtopic=345,就是建立自己的HtmlForm。
  • 相关阅读:
    记录一次在 VirtualBox的添加共享windows文件后,发现没有共享文件的事
    linux 压缩解压缩命令
    关于erlang中的timer:tc/3
    python基础:while循环,for循环
    grep和正则表达式参数
    grep和正则表达式
    nginx反向代理三台web
    安装nginx包
    部署samba
    samba了解
  • 原文地址:https://www.cnblogs.com/Tmouse/p/638796.html
Copyright © 2011-2022 走看看