asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解
目录
URL重写的业务需求
ReWritingNet组件主要功能
配置IIS(IIS7/8环境下)
程序代码
重写规则
一,URL重写的业务需求
- 顾客可以直接用浏览器bookmark功能将页面连结储存起来.
- url有意义,便于记忆URL
- 利于搜索引擎收录
- 便于更新
- 隐藏实际文件路径,提高网站的安全性
二,ReWritingNet组件主要功能
- 基于正则表达式的重写
- 支持Themes和母版页
- 支持输出缓存
- 支持信任级别为"Medium"的使用环境
- 支持Postback
- 支持无Cookie的Session
- 运行时添加、修改改写规则
- 容易安装使用
三,配置IIS(IIS7/8环境下)
- 下载伪静态组件:http://www.iis.net/downloads/microsoft/url-rewrite
- 下载urlrewiting.dll,下载地址:http://files.cnblogs.com/fiteg/Intelligencia.UrlRewriter.rar
- 安装伪静态组件
查看是否安装成功
四,程序代码
- 引入Dll文件
- 把UrlRewritingNet.UrlRewriter.dll文件添加的工程的Bin文件下
- 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重写,伪静态详解相关推荐
- UrlRewritingNet 完美实现 ASP.NET 2.0 中的URL重写(映射)
URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global. ...
- UrlRewritingNet ASP.NET 2.0 中的URL重写(映射)
URL重写好处有很多,如有利于SEO.便于记忆.隐藏真实路径使安全性提高.便于更新等等.本文概要描述了各种URL重写的实现. ASP.NET 2.0 中实现URL重写有很多方法,如:Global.as ...
- ios navigation的返回按钮长按_Android Jetpack架构组件 — Navigation入坑详解 [转]
前言 这是最近看见的觉得比较有意思的文,希望对大家的学习有帮助. Navigation 直接翻译即为导航,它是 Android Jetpack 组件之一,让单 Activity 应用成为首选架构.应用 ...
- Android四大组件Service之AIDL详解
Android四大组件Service之AIDL详解 前言 简介 基础知识 AIDL 服务端 定义AIDL文件规则 创建 .aidl 文件 清单注册 通过 IPC 传递对象 调用 IPC 方法 Andr ...
- URL编码/解码详解
URL编码/解码详解 当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码(采用十六进制编码格式).URL 编码的原则是使用安全字符去表示那些不安全的字符. 安全字符 ...
- ASP中利用OWC控件实现图表功能详解[zz]
ASP中利用OWC控件实现图表功能详解 在ASP中利用OWC(Office Web Components)控件可轻松实现各种图表功能,如饼图,簇状柱型图,折线图等. 在下面的代码中我详细的给出了饼图, ...
- vue 中provide的用法_Vue多级组件provide/inject使用详解
这次给大家带来Vue多级组件provide/inject使用详解,Vue多级组件provide/inject使用的注意事项有哪些,下面就是实战案例,一起来看一下. provide / inject 是 ...
- ASP.NET 2.0 中Cookies的Expires属性详解
ASP.NET 2.0 中Cookies的Expires属性详解 response.cookies("cookiename").expires中expires的属性如下: resp ...
- Nagios各组件简述及nrpe详解
Nagios各组件简述及nrpe详解 一.Nagios各组件简述 由于nagios配置较为繁锁,且里面组件也较多,这里我将几个关键的组件列举一下,且做一下简单的介绍及其和其它组件间的关系的描述.我自己 ...
最新文章
- 教你用百度地图API抓取建筑物周边位置、房价信息(附代码)
- solr源码导入eclipse
- apache camel_学习Apache Camel –实时索引推文
- 一份所有中国人都应该听的歌单,你听过几首?
- oracle企业版配置,在 Oracle 数据库 11
- 修改mongodb最大查询数_mongodb数据库如何查询某个字段的最大值?
- webservice实例java_Java WebService(实战) 简单实例
- Autofs实现文件系统的自动mount
- 【vscode】vscode + vue项目实战记录
- 游戏策划游戏研发必读经典题文一
- 3Ds Max 精简材质编辑器 一片黑问题
- 【ONNX】使用 C++ 调用 ONNX 格式的 PyTorch 深度学习模型进行预测(Windows, C++, PyTorch, ONNX, Visual Studio, OpenCV)
- 软工网络15个人阅读作业1-评分发布
- UESTC878————温泉旅店(动态规划)
- php调用shell执行scp,使用shell脚本自动执行scp文件传输
- 面试官:怎么不用定时任务实现关闭订单?
- ESP8266Wi-Fi数据通讯
- 数据库的概念模型与关系模型的设计与实现
- 在Adobe Acrobat Pro DC中为什么注释会莫名其妙消失怎么办
- 来测试下 2019 你一共写了多少行代码?