在ASP.Net2.0中使用UrlRewritingNet实现链接重写

很多时候我们需要链接转向(Url Rewriting),例如二级域名转向、文章访问链接等场合。

让我们看两个例子:

1 你现在看到的当前作者的博客园的域名:
http://deymmtd.cnblogs.com 实际上是 http://www.cnblogs.com/ 的一种链接重写(Url Rewriting)。

2 codeproject上的文章,我们获取的地址都是以文章主要关键字做的网页名称:
http://www.codeproject.com/cs/webservices/wsdlparser.asp 
个人觉得实际的文章链接可能是如下格式(纯属猜想)
http://www.codeproject.com/news.asp?id=123456

那么如何在Asp.net2.0中如何实现链接重写呢?
可以采用UrlRewritingNet.UrlRewriter.dll来轻松实现
UrlRewritingNet.UrlRewriter.dll 可从其官方网站下载:http://www.urlrewriting.net

我们要做的就是进行Web.Config文件的设置

0 设置之前需要添加引用:UrlRewritingNet.UrlRewriter.dll
1 <configSections>间添加:
  <configSections>
  <section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
 </configSections>
2   添加httpModules
  <httpModules>
      <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
  </httpModules>
3 添加链接重写的设置
 <urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
  <rewrites>
   <add name="Rewrite1" virtualUrl="^http\://(.*)/UrlRewritingTest/test.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/default.aspx" rewrite="Domain" ignoreCase="true"/>
   <add name="Rewrite2" virtualUrl="^http\://(.*)/UrlRewritingTest/test1.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=2007&amp;month=3&amp;day=9" rewrite="Domain" ignoreCase="true"/>
  </rewrites>
 </urlrewritingnet>

完整的一个Web.Config文件

<?xml version="1.0"?>
<configuration>
    <configSections>
        <section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
    </configSections>
    <urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
        <rewrites>
            <add name="Rewrite1" virtualUrl="^http\://(.*)/UrlRewritingTest/test.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/default.aspx" rewrite="Domain" ignoreCase="true"/>
            <add name="Rewrite2" virtualUrl="^http\://(.*)/UrlRewritingTest/test1.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=2007&amp;month=3&amp;day=9" rewrite="Domain" ignoreCase="true"/>
            <add name="Rewrite3" virtualUrl="^http\://(.*)/UrlRewritingTest/test(\d{4})(\d{2})(\d{2}).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=$2&amp;month=$3&amp;day=$4" rewrite="Domain" ignoreCase="true"/>
            <add name="Rewrite4" virtualUrl="^http\://(.*)/UrlRewritingTest/(\d{4})/(\d{2})/(\d{2})/info.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=$2&amp;month=$3&amp;day=$4" rewrite="Domain" ignoreCase="true"/>
      <add name="Rewrite5" virtualUrl="^http\://(.*)/UrlRewritingTest/stock(\d{6}).aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/stockinfo.aspx?code=$2" rewrite="Domain" ignoreCase="true"/>
        </rewrites>
    </urlrewritingnet>
    <appSettings/>
    <system.web>
        <httpModules>
            <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
        </httpModules>
        <compilation debug="true"/>
  </system.web>
</configuration>

deymmtd

转载于:https://www.cnblogs.com/deymmtd/archive/2009/01/05/1368780.html

在ASP.Net2.0中使用UrlRewritingNet实现链接重写相关推荐

  1. 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)

    在ASP.Net2.0中使用UrlRewritingNet实现链接重写 很多时候我们需要链接转向(Url Rewriting),例如二级域名转向.文章访问链接等场合. 让我们看两个例子: 1 你现在看 ...

  2. ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件!

    在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...

  3. 深度解析ASP.NET2.0中的Callback机制

    callback的一般使用方法还算简单,直接参照msdn的帮助和范例就足够了.但是想要真正用好.用精,或者想开发一些基于callback机制的WEB组件,那么,就要先深入了解callback的实现机制 ...

  4. ASP.NET2.0中的全球化与本地化UICulture,Culture

    ASP.NET2.0中的全球化与本地化UICulture,Culture 来源:转载 日期:2007-2-28 14:59:01 阅读:324 评论:0   一.简介 全球化和本地化是每一位开发者在创 ...

  5. ASP.NET2.0中的ClientScriptManager 类用法—如何添加客户端事件

    在ASP.NET2.0中,ClientScriptManager 类通过键 String 和 Type 唯一地标识脚本.具有相同的键和类型的脚本被视为重复脚本.因此,我们可以使用脚本类型来避免混淆可能 ...

  6. ASP.NET2.0中themes、Skins轻松实现网站换肤!

    ASP.NET2.0中themes.Skins轻松实现网站换肤! 可能有些朋友还不是很清楚themes.skins.下面先介绍下themes.skins.. 一.简介: 一看Themes.Skins这 ...

  7. [导入]ASP.NET2.0中Tabs的简单实现

    摘要: ASP.NET2.0中Tabs的简单实现  阅读全文 [新闻]"Wintel"联盟已名存实亡 文章来源:http://www.cnblogs.com/gyche/archi ...

  8. asp.net2.0中的ValidationGroup (转)

    asp.net2.0中的ValidationGroup 在asp.net 1.1中,对于验证类控件,在使用时,遇到有的不需要验证的控件时,是十分麻烦的,就是说不可能有选择验证某些控件,而在asp.ne ...

  9. 在asp.net2.0中使用串行化对象实现自定义配置

    在一次升级一个entlib1.0到entlib的高版本程序时,碰到entlib的一个通过XmlSerializer方式实现的自定义配置.而在entlib的高版本中这样的配置不再被支持.可是又不希望修改 ...

最新文章

  1. 806. Number of Lines To Write String - LeetCode
  2. 批量离线下载迅雷快传资源
  3. Android-广播接收者简介
  4. [react] 除了实例的属性可以获取Context外哪些地方还能直接获取Context呢?
  5. 真实世界:使用WCF扩展记录服务调用时间
  6. Linux实战第三篇:RHEL7.3 yum更换实战
  7. HDU6266 - Hakase and Nano 狄利克雷卷积
  8. 再见!LayUI !
  9. angular-输入验证
  10. python中的函数(全)
  11. Tracking By Detecting的多目标跟踪
  12. freeswitch呼叫中心之百度MRCP语音合成识别环境搭建
  13. ws2812 程序设计与应用(1)DMA 控制 PWM 占空比原理及实现(STM32)
  14. OSError: [WinError -529697949] Windows Error 0xe06d7363
  15. 黄山杭州五日游攻略,厦门出发
  16. Vue3 Echarts散点图+高德地图+卫星地图(一)——获取高德地图API
  17. 抵押贷款服务市场现状及未来发展趋势
  18. Qt原对象metaObject编译错误的问题
  19. 用指定的用户名和密码无法登陆到该ftp服务器
  20. 计算机培训ppt教案,课件制作的教案

热门文章

  1. nodejs 监控代码变动实现ftp上传
  2. python的学习笔记(0)之循环的使用1
  3. shell脚本修复MySQL主从同步
  4. Spring3.1+SpringMVC3.1+JPA2.0
  5. 用Aspose.Words for .NET动态生成word文档中的图片或水印
  6. 经济危机下企业倒闭的真相
  7. [转] 使用模板自定义 WPF 控件
  8. 删除指定目录下的所有文件包括目录
  9. hdu1024 最大m子序列和
  10. hdu4920 矩阵乘法%3