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
- 安装伪静态组件
查看是否安装成功


四,程序代码
- 引入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" >
重写规则、参数个数等等可以自己定义,还可以在运行时添加、修改重写规则,也可以扩展该组件的功能来满足形形色色的需求。具体可查看其文档和源码。
asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解的更多相关文章
- 详解Android中的四大组件之一:Activity详解
activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...
- “全栈2019”Java第四十九章:重载与重写对比详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解
如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 最近一段时间生病了,整天往医院跑,也没状态学东西了,现在是好了不少了,也该继续学习啦!!! ...
- 029:url标签使用详解
url标签使用详解: 在模版中,我们经常要写一些 url ,比如某个 a 标签中需要定义 href 属性.当然如果通过硬编码的方式直接将这个 url 写死在里面也是可以的.但是这样对于以后项目维护可能 ...
- URL&HTTP协议详解
本文来自公开课笔记,主要做知识的记录,谢谢! ·接口测试核心技术--URL&HTTP协议详解. ·URL: 统一资源定位符. 示例: https://ke.qq.com/course/3157 ...
- ASP.NET 整理比较全的URL重写解决方案
经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点.这个博客帖子概述了几个方法,你可以用来在ASP.NET中干净地映射或重写URL,以及按照你自 ...
- 使用URLRewriter实现URL重写
优点 1)隐藏真实URL,提高安全性 2)更加友好的URL,好记(看博客园就行知道啦) 3)便于搜素引擎收录 ......... 可能的缺点 使用URL重写可能导致: 1)图片路径的问题 2)CSS路 ...
- Url重写——伪静态实现
简述: 在我们浏览网站的时候,很多都是以.html结尾的.难道这些都是静态网页么?其实不是的,它们很多是伪静态 那么什么是伪静态?顾名思义,就是假的静态页面.通过某种设置让你看成是静态的. Q:为何要 ...
- SpringMVC 框架系列之组件概述与配置详解
在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...
随机推荐
- VEP安装指南
#下载依赖包 sudo apt-get install -y curl rsync tar make perl perl-base tabix #设置perl环境变量 export PERL_PATH ...
- TYPES、DATA、TYPE、LIKE、CONSTANTS、STATICS、TABLES
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- poj 1279 -- Art Gallery (半平面交)
鏈接:http://poj.org/problem?id=1279 Art Gallery Time Limit: 1000MS Memory Limit: 10000K Total Submis ...
- 从xubuntu-->windows xp
捣鼓了两个月的ubuntu之后我又乖乖的回到了windows的怀抱,不是抛弃linux而是要适应身边的环境. 身边的板子的驱动基本上都是xp的老一点的还是vista的,让人情何以堪. 我努力克服了,用 ...
- C# 线程(一)
From : http://www.cnblogs.com/miniwiki/archive/2010/06/18/1760540.html 文章系参考转载,英文原文网址请参考:http://www. ...
- 如何在VirtualBox虚拟机软件上安装Win7虚拟系统
在Windows系统中安装VirtualBox 双击从官网上下载的VirtualBox-4.3.12-93733-Win.exe安装程序,默认下一步,下一步完成基础安装. 在VirtualBox虚拟机 ...
- Spring 读书笔记-----使用Spring容器(一)
pring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.他们都可代表Spring容器,Spri ...
- [转载] 高效 MacBook 工作环境配置
原文: http://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=208231200&idx=1&sn=8a76ddc56c1f ...
- [转载] C++ 程序员快过来围观:非常实用全面的 C++ 资源
原文: http://codecloud.net/c-plus-plus-resource-2983.html 绝对是c++开发者的福音啊, 必须推荐. 这次的资源涉及到了标准库.Web应用框架.人工 ...
- sysfs接口函数的建立_DEVICE_ATTR(转)
sysfs接口函数到建立_DEVICE_ATTR 最近在弄Sensor驱动,看过一个某厂家的成品驱动,里面实现的全都是sysfs接口,hal层利用sysfs生成的接口,对Sensor进行操作. 说道s ...