使用URLRewriter实现URL重写

优点

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重写方式

时间: 2024-10-11 16:37:57

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

URL重写技术总结

概要:什么是url重写? URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程.比如浏览器发来请求 hostname/101.html ,服务器自动将这个请求中定向为http://hostname/list.aspx ?id=101. url重写的优点在于: 1.缩短url,隐藏实际路径提高安全性. 2.易于用户记忆和键入. 3.易于被搜索引擎收录. 正文:实现url重写的基本方法: 一. 下载ms的URLRewriter.dll,放到你的web程序的bin下 下载地址1

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

.net用url重写URLReWriter实现任意二级域名 这两天需要用到URLReWriter来搞那个猪头的Blog,网上看到篇好文,收藏 摘要:解释了url重写的相关知识.用asp.net实现二级域名重写的方法.对重写的一些问题做了汇总解答.提供了几段示例代码. 好久没有写技术文章,如果大家看不明白,就多看几篇,汗,或者,在文章的后面回复(这是最有效的办法),我会尽力帮助大家解答疑惑. 来找这篇文章的,应该都知道什么叫二级域名吧,废话就不说了.但是讨论前,先要明白一个思想问题.很多朋友一直考

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

大家参考几篇园子里面的这篇文章: 文章1:微软URLRewriter.dll的url重写的简单使用 (讲解了使用UrlReWriter.dll的下载.web.config如何在目标框架2.0应用程序池经典模式下配置使用该dll.还有一个web的例子.缺少处理程序映射的设置例子) 文章2:使用web.config中的httpHandlers (讲解了URLRewriter.dll是如何从原理上来处理URL重写地址来转发给真实的服务器地址上的) 文章3:检测到在集成的托管管道模式下不适用的ASP.N

Url Rewrite 再说Url 重写

前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL>, URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜索一下URL-Rewrite可以找到很多URL-Rewrite方面的文章和组件,自己以前也多次接触过这个东东,也来说说吧. ScottGu 有一篇非常经典的 URL-Rewrite Blog Tip/Trick: Url Rewriting with ASP.NET http://weblogs.asp.net

ASP.NET 中执行 URL 重写

具体实现步骤(其中的一种实现方法): 一.下载相关的DLL(ActionlessForm.dll和UrlRewriter.dll) http://download.csdn.net/detail/yingwanghbx/4510059 二.在项目中引用那两个DLL文件 右击项目,点击Add Reference,选择Browse,然后选择相应的DLL,点击OK即可. 三.添加browser文件 1.右击项目,点击Add-New Item,选择Browser File,取个有意义的名字.在生成的*.

url重写后发布出错问题

iis7 配置urlrewriter重写失效的问题 在IIS7下,如果使用微软的 URLRewriter 重写控件则需要在WEB.CONFIG中配置以下信息 第一个配置: <configSections> <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/> </conf

ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置

核心提示:大 家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一个一个的 静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用静态文件可提高服务器的运行稳定和速度... 大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML或者XX.ASPX等类似静态文件的标示来操作的吧,那么大家有怀疑过他真的是一 个一个的静态生成的文件么,静态文件的生成的优缺有好有坏,对于访问量很大的网站,利用

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

概述 今天看了下URL重写的实现,主要看的是MS 的URL Rewrite. URL重写的优点有:更友好的URL,支持老版本的URL URL重写的缺点有:最主要的缺点是性能低下,因为如果要支持无后缀的URL(但更多的情况是我们要支持这种方式)就必须在IIS中配置所有的URL(包括js,css,image)都要转发到aspnet_isapi中,解决方法可以参见 慎用url重写:还有一个性能问题是,根据源代码,在匹配url时,用正则表达式尝试匹配每一个规则,直至有一个匹配成功,或都匹配不成功才结束.

【IHttpHandler】IHttpModule实现URL重写

1.用自定义IHttpModule实现URL重写 一般来说,要显示一些动态数据总是采用带参数的方式,比如制作一个UserInfo.aspx的动态页面用于显示系统的UserInfo这个用户信息表的数据,那么需要在其后带上一个参数来指定要显示的用户信息,比如UserInfo.aspx?UserId=1用于显示表中编号为1的用户的信息,如果为2则显示表中编号为2的用户信息.在一些系统中我们可能看到的不是这样的效果,可能会看到形如UserInfo2.aspx这样的形式(当然形式可以多样,只要有规律就行)