优点

1)隐藏真实URL,提高安全性

2)更加友好的URL,好记(看博客园就行知道啦)

3)便于搜素引擎收录

.........

可能的缺点

使用URL重写可能导致:

1)图片路径的问题

2)CSS路径的问题

3)性能问题

.........

先下载DLL包,附带了源码的.

download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi

URLRewriter.dll和ActionlessForm.dll

或者只使用DLL 本人已经上传:http://files.cnblogs.com/yun_shuai/URLRewriter.rar 含有上面2个DLL

使用方法  :WEB项目中添加引用

webconfig中配置:

1 <configSections> 节点中增加:

<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter"/>

2 <configuration>根节点中增加URL重写的配置:  可以使用正则表达式

<RewriterConfig> <Rules>   <!-- Rules for Blog Content Displayer -->   <RewriterRule>    <LookFor>~/(\d{4})/(\d{2})/(\d{2})\.aspx</LookFor>    <SendTo>~/ShowBlogContent.aspx?year=$1&amp;month=$2&amp;day=$3</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/(\d{4})/(\d{2})/Default\.aspx</LookFor>    <SendTo><![CDATA[~/ShowBlogContent.aspx?year=$1&month=$2]]></SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/(\d{4})/Default\.aspx</LookFor>    <SendTo>~/ShowBlogContent.aspx?year=$1</SendTo>   </RewriterRule>     <!-- Rules for Product Lister -->   <RewriterRule>    <LookFor>~/Products/Default\.aspx</LookFor>    <SendTo>~/ListCategories.aspx</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/Beverages\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=1</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/Condiments\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=2</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/Confections\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=3</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/Dairy\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=4</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/GrainsCereals\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=5</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/MeatPoultry\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=6</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/Produce\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=7</SendTo>   </RewriterRule>   <RewriterRule>    <LookFor>~/Products/Seafood\.aspx</LookFor>    <SendTo>~/ListProductsByCategory.aspx?CategoryID=8</SendTo>   </RewriterRule> </Rules>   </RewriterConfig>

3 <httpModules> 增加   <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

或者

<httpHandlers> 增加   <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

4 完成.

5 其他问题:

回发后真实路径再现:

1、将ActionlessForm.dll添加到项目的bin文件夹

2、在aspx网页的代码中加<%@ Register TagPrefix="RW" Namespace="ActionlessForm" Assembly="ActionlessForm" %>

3、然后将form标签改为RW:Form(注意开始和结束都要改),TagPrefix可以自定义

另外:DOTNET3.5 提供了 System.Web.Routing 命名空间

可以自己实现想要的URL重写.

参考文章:

http://www.cnblogs.com/Ferry/archive/2009/06/19/1506770.html

http://www.blogjava.net/Unmi/archive/2010/06/14/323349.html

从以上2篇文章地址可以看出,其服务器也使用了URL重写方式

使用URLRewriter实现URL重写的更多相关文章

  1. asp.net 使用UrlRewritingNet.UrlRewriter组件URL重写,伪静态详解

    目录 URL重写的业务需求 ReWritingNet组件主要功能 配置IIS(IIS7/8环境下) 程序代码 重写规则 一,URL重写的业务需求 顾客可以直接用浏览器bookmark功能将页面连结储存 ...

  2. ASP.NET过滤器、URL重写

    过滤器可以对指定的URL访问进行拦截,并执行过滤器的方法,根据实际应用情况,在过滤器中修改请求的代码.判断会话信息,也可以做权限控制. 一:编写过滤器,实现URL重写并配置过滤 编写过滤器,就是编写一 ...

  3. URL重写技术总结

    URL重写技术总结 概要:什么是url重写? URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.比如浏览器发来请求 hostname/101.html ,服务器自动将这个请 ...

  4. 借助微软提供的url重写类库URLRewriter.dll(1.0)实现程序自动二级域名,域名需要泛解析

    二级域名和系统中会员帐号自动关联,也就是系统中注册一个会员,会员自动就可以通过二级域名来访问,比如我的帐号是zhangsan,我在morecoder.com注册后,访问zhangsan.morecod ...

  5. 微软URLRewriter.dll的url重写在目标框架.Net Framework2.0、4.0和应用程序池经典模式、集成模式下的配置

    大家参考几篇园子里面的这篇文章: 文章1:微软URLRewriter.dll的url重写的简单使用 (讲解了使用UrlReWriter.dll的下载.web.config如何在目标框架2.0应用程序池 ...

  6. .net用url重写URLReWriter实现任意二级域名

    .net用url重写URLReWriter实现任意二级域名 这两天需要用到URLReWriter来搞那个猪头的Blog,网上看到篇好文,收藏 摘要:解释了url重写的相关知识.用asp.net实现二级 ...

  7. 【url重写】

    一.原理void Application_BeginRequest(object sender, EventArgs e)    {  //url重写        HttpApplication a ...

  8. UrlRewritingNet伪静态的使用方法与解决方案(URL重写)

    在建站初期时,我们往往需要考虑的是使用真静态还是伪静态,这对于往后的站点配置,延展性都会产生深远的影响. 我使用伪静态的唯一目的:SEO优化.毋容置疑,伪静态在对于Spider是非常有利的,因此,我更 ...

  9. UrlRewrite(URL重写)--ASP.NET中的实现

    概述 今天看了下URL重写的实现,主要看的是MS 的URL Rewrite. URL重写的优点有:更友好的URL,支持老版本的URL URL重写的缺点有:最主要的缺点是性能低下,因为如果要支持无后缀的 ...

随机推荐

  1. linux命令-任务计划-cron

    任务计划,有时间规律的执行某些事情. 查看任务计划:crontab -l 指定用户:crontab -l  -u 用户名 该用户没有任务计划. 自定义任务计划 进入一个操作和vim类似的界面 用空格分 ...

  2. javaScript之this的五种情况

    this一直是JavaScript研究的难题,特别是在笔试和面试中的各种程序分析问题中,也常常会被问到.下面来看一看this被运用的五中情况: (1)       纯粹的函数调用 函数最普通用法,此时 ...

  3. Redis简介及基础知识

    一.Redis简介 Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 string( ...

  4. Stream接口

    数据读写可以看作是事件模式(Event)的特例,不断发送的数据块好比一个个的事件.读数据是read事件,写数据是write事件,而数据块是事件附带的信息.Node 为这类情况提供了一个特殊接口Stre ...

  5. Hive 进阶

    两种情况下不走map-reduce: 1. where ds >' ' //ds 是partition 2. select * from table //后面没有查询条件,什么都没有 1.建表 ...

  6. iOS开发,使用CocoaSSDP查找设备时按关键字过滤Device

    关于CocoaSSDP的资料有很多,这里就不介绍了. 希望寻找的目标设备,在header中设置了自定义的keyword,虽然通过外围代码也能达到相同目的,但是直接修改CocoaSSDP源码更简便. 导 ...

  7. setTimeout关于函数名做参数的问题

    前几天在调bug时发现一个诡异的问题. function test(){ alert('4 seconds!'); } setTimeout(test(),4000); 这段代码立即执行,当时看不出问 ...

  8. 【转】List<T>和ILIst<T>的区别

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace List ...

  9. OC官方文档翻译-Values-and-Collections-值与集合类型

    查看全部文档翻译,请浏览https://github.com/L1l1thLY/Programming-with-Objective-C-in-Chinese,blog仅收录本人翻译的两章. 简述 O ...

  10. 交叉编译Spice-gtk

    Fedora环境 编译环境 操作系统: 64位 Fedora23 下载源文件 spice-gtk.spice-protocol 安装依赖 $ sudo yum install -y dh-autore ...