目录

  • URL重写的业务需求

  • ReWritingNet组件主要功能

  • 配置IIS(IIS7/8环境下)

  • 程序代码

  • 重写规则

一,URL重写的业务需求

  1. 顾客可以直接用浏览器bookmark功能将页面连结储存起来.
  2. url有意义,便于记忆URL
  3. 利于搜索引擎收录
  4. 便于更新
  5. 隐藏实际文件路径,提高网站的安全性

二,ReWritingNet组件主要功能

  1. 基于正则表达式的重写
  2. 支持Themes和母版页
  3. 支持输出缓存
  4. 支持信任级别为"Medium"的使用环境
  5. 支持Postback
  6. 支持无Cookie的Session
  7. 运行时添加、修改改写规则
  8. 容易安装使用

三,配置IIS(IIS7/8环境下)

  1. 下载伪静态组件:http://www.iis.net/downloads/microsoft/url-rewrite
  2. 下载urlrewiting.dll,下载地址:http://files.cnblogs.com/fiteg/Intelligencia.UrlRewriter.rar
  3. 安装伪静态组件

查看是否安装成功

四,程序代码

  1. 引入Dll文件
  • 把UrlRewritingNet.UrlRewriter.dll文件添加的工程的Bin文件下
  1. Web Config配置
a.首先、在ConfigSections节新增Section,如下
<configSections><section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/></configSections>
b.在 <system.web>节点下配置如下内容
 <httpModules><add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/></httpModules>

解释:HttpModule 是实现 IHttpModule 接口和处理事件的程序集。ASP.NET 包含一组可由应用程序使用的 HttpModule 模块。例如,ASP.NET 提供了 SessionStateModule 来向应用程序提供会话状态服务。可以创建自定义 HttpModule以响应 ASP.NET 事件或用户事件

c.在<configuration>节点配置重写规则,或者重新新建一个urlrewriting.config来配置重写规则
<?xml version="1.0" encoding="utf-8"?>
<urlrewritingnet rewriteOnlyVirtualUrls="true" defaultPage=""  contextItemsPrefix="QueryString"  defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07"><rewrites><!--首页--><add name="eshop" virtualUrl="^~/(\d+).html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/VipStore/5/Index.aspx?StoreID=$1" ignoreCase="true"/><!--默认--><add name="default" virtualUrl="^~/default.html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/><add name="default2" virtualUrl="^~/default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/><add name="default3" virtualUrl="^~/" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/></rewrites>
</urlrewritingnet>

五, 重写规则

(一)、扩展名不变的重写
 <add name="default2" virtualUrl="^~/default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
(二)、伪静态重写,扩展名为.html
<add name="default" virtualUrl="^~/default.html" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Search.aspx" ignoreCase="true"/>
(三)、任意扩展名的重写 如:扩展名为.tkx,配置和伪静态一样配置
<!--    任意扩展名的重写如:扩展名为.tkx--><add name="RewriteIndex" virtualUrl="^~/index_(\d+).tkx"rewriteUrlParameter="ExcludeFromClientQueryString"destinationUrl="~/index2.aspx?ID=$1"ignoreCase="true" />

IIS配置:扩展名如果不在IIS处理程序映射内,那么需要添加对应的处理程序映射

可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll

(四)、无后缀的重写
 <add name="muying" virtualUrl="^~/muying/" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Muying.aspx"  ignoreCase="true"/>
(五)、二级域名到多级域名的重写
<add name="Rewrite1" virtualUrl="^http\://(.*).xianfen.net/Default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Default.aspx?ID=$1" ignoreCase="true" />

注意,在进行二级域名重写时要对一个地方进行重新设置:

 <urlrewritingnet rewriteOnlyVirtualUrls="true" 改为 false    contextItemsPrefix="QueryString" defaultPage = "Default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07" > 

重写规则、参数个数等等可以自己定义,还可以在运行时添加、修改重写规则,也可以扩展该组件的功能来满足形形色色的需求。具体可查看其文档和源码。

转载自:https://www.cnblogs.com/sunxi/p/4564243.html

asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解相关推荐

  1. UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现.   ASP.NET 2.0 中实现URL重写有很多方法,如:Global. ...

  2. UrlRewritingNet ASP.NET 2.0 中的URL重写(映射)

    URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...

  3. ios navigation的返回按钮长按_Android Jetpack架构组件 — Navigation入坑详解 [转]

    前言 这是最近看见的觉得比较有意思的文,希望对大家的学习有帮助. Navigation 直接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 应用成为首选架构.应用 ...

  4. Android四大组件Service之AIDL详解

    Android四大组件Service之AIDL详解 前言 简介 基础知识 AIDL 服务端 定义AIDL文件规则 创建 .aidl 文件 清单注册 通过 IPC 传递对象 调用 IPC 方法 Andr ...

  5. URL编码/解码详解

    URL编码/解码详解 当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式).URL 编码的原则是使用安全字符去表示那些不安全的字符. 安全字符 ...

  6. ASP中利用OWC控件实现图表功能详解[zz]

    ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...

  7. vue 中provide的用法_Vue多级组件provide/inject使用详解

    这次给大家带来Vue多级组件provide/inject使用详解,Vue多级组件provide/inject使用的注意事项有哪些,下面就是实战案例,一起来看一下. provide / inject 是 ...

  8. ASP.NET 2.0 中Cookies的Expires属性详解

    ASP.NET 2.0 中Cookies的Expires属性详解 response.cookies("cookiename").expires中expires的属性如下: resp ...

  9. Nagios各组件简述及nrpe详解

    Nagios各组件简述及nrpe详解 一.Nagios各组件简述 由于nagios配置较为繁锁,且里面组件也较多,这里我将几个关键的组件列举一下,且做一下简单的介绍及其和其它组件间的关系的描述.我自己 ...

最新文章

  1. 教你用百度地图API抓取建筑物周边位置、房价信息(附代码)
  2. solr源码导入eclipse
  3. apache camel_学习Apache Camel –实时索引推文
  4. 一份所有中国人都应该听的歌单,你听过几首?
  5. oracle企业版配置,在 Oracle 数据库 11
  6. 修改mongodb最大查询数_mongodb数据库如何查询某个字段的最大值?
  7. webservice实例java_Java WebService(实战) 简单实例
  8. Autofs实现文件系统的自动mount
  9. 【vscode】vscode + vue项目实战记录
  10. 游戏策划游戏研发必读经典题文一
  11. 3Ds Max 精简材质编辑器 一片黑问题
  12. 【ONNX】使用 C++ 调用 ONNX 格式的 PyTorch 深度学习模型进行预测(Windows, C++, PyTorch, ONNX, Visual Studio, OpenCV)
  13. 软工网络15个人阅读作业1-评分发布
  14. UESTC878————温泉旅店(动态规划)
  15. php调用shell执行scp,使用shell脚本自动执行scp文件传输
  16. 面试官:怎么不用定时任务实现关闭订单?
  17. ESP8266Wi-Fi数据通讯
  18. 数据库的概念模型与关系模型的设计与实现
  19. 在Adobe Acrobat Pro DC中为什么注释会莫名其妙消失怎么办
  20. 来测试下 2019 你一共写了多少行代码?

热门文章

  1. iRedmail配置手册
  2. 新闻分类实战-贝叶斯
  3. Python中的立方根
  4. 3、vue-路由、拦截器和嵌套路由
  5. 【BZOJ1062】糖果雨(NOI2008)-数形结合+二维树状数组
  6. 2020年国内 IoT物联网平台横向对比报告
  7. python文件及目录操作(copytree)
  8. 大学毕业生参考信函提示
  9. PSRAM/SRAM与XMC硬件连接的推荐方法
  10. css 细线表格,如何在Dreamweaver中制作细线表格?