Intelligencia.UrlRewriter使用说明(转)

原创 2011年01月19日 13:22:00

1.Server2000/2003/XP操作系统下IIS的配置:

官网:http://urlrewriter.net/index.php/support/installation

 

2.UrlRewriter.net(入门篇)(进阶篇)(高级篇)代码示例:

下载:/Files/Fred_Xu/UrlRewriter.NET.rar

 

3.Intelligencia.UrlRewriter在IIS7、7.5中的配置方法:

      在vista、win7、server2008中,iis的版本是v7+,IIS6重写配置在IIS7中重写无效解决方案由于IIS6只能在请求被分配到Asp.Net引擎后才能发生重写操作,IIS7可以在IIS请求管道的任何地方执行一个HttpModule, 而且IIS7对于文件或文件夹的访问权限得重新设置.

      如果是IIS7.0/7.5的运行环境,添加该配置

 

 <system.webServer>

 
<modules>

 
<!--您的自定义IIS重写模块操作-->

 
<add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule"/>

 
</modules>

 
</system.webServer>

 

 问题即可解决!

摘引自ScottGu的Blog:

<?xmlversion="1.0"encoding="UTF-8"?>
 
<configuration>
 
<configSections>
 
<sectionname="rewriter"
 requirePermission
="false"
 type
="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler,Intelligencia.UrlRewriter"/>
 
</configSections>
 
<system.web>
 
<httpModules>
 
<addname="UrlRewriter"type="Intelligencia.UrlRewriter.RewriterHttpModule,Intelligencia.UrlRewriter"/>
 
</httpModules>
 
</system.web>
 
<system.webServer>
 
<modulesrunAllManagedModulesForAllRequests="true">
 
<addname="UrlRewriter"type="Intelligencia.UrlRewriter.RewriterHttpModule"/>
 
</modules>
 
<validationvalidateIntegratedModeConfiguration="false"/>
 
</system.webServer>
 
<rewriter>
 
<rewriteurl="~/products/(.+)"to="~/products.aspx?category=$1"/>
 
</rewriter>
 
</configuration>

 参考博文:http://devtalk.dk/2007/03/19/Wildcard+Mapping+And+URL+Rewriting+On+IIS7.aspx 【推荐】

        http://aspalliance.com/1234_TipTrick_Url_Rewriting_with_ASPNET.3

      http://www.improve.dk/blog/2006/12/11/making-url-rewriting-on-iis7-work-like-iis6

4.重写HTML的规则示例:

(1)

注意:

当使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,IIS的默认文档机制也就失去了该有的作用,以下代码就是用来重新实现默认文档的方法:

<rewrite url="^(.*)/(/?.+)?$" to="$1/default.aspx$2" />注意:使用“processing="restart"”的时候将会导致重写引擎从头开始执行所有的重写规则,此时应当注重包含“/default.aspx”字符串的处理。

如果你需要同时支持多个默认文档,那么以上代码需要修改为:

<if url="^(.*)/(/?.+)?$">

 <rewrite exists="$1/default.aspx" to="$1/default.aspx$2" />

 <rewrite exists="$1/index.aspx" to="$1/index.aspx$2" />

 <rewrite exists="$1/index.html" to="$1/index.html$2" />

</if>编辑以上规则代码的时候,尤其要注意确认文件是否存在。

此外,在使用通配符映射或者使用ASP.NET处理所有HTTP请求的时候,你会发现.gif、.css等文件无法正常访问,这是因为此时对这些文件类型的处理都被ASP.NET所拦截。修正方法如下:

<rewrite

 url="^(/.+(/.gif|/.png|/.jpg|/.ico|/.css|/.js)(/?.+)?)$"

 to="$1" processing="stop" />两个比较特殊的正则表达式字符是“^”和“$”(不是必须的),“^”代表URL的开头,“$”代表URL的结尾。使用这两个符号可以使您更加精确的控制重写动作,以确保程序所匹配的URL正是您想处理的。

“~/”表示当前网站应用程序运行所在的虚拟根目录,当您把网站应用程序安装于虚拟目录(或者非根目录)的时候,这尤其有用,而无须重新编写任何代码来替换您的虚拟根路径。

模式匹配在处理查询字串(QueryStrings)的时候尤其有用,这可以让您的URL去掉类似于“?id=3”的代码段,这非常有用,可以让你轻松的实现伪静态。

下面列出两个我们认为非常有特色的重写规则:

(1) 当目标URL不包含自定义查询字串的时候:

<rewrite url="^~/mypage(/?.+)?$" to="~/default.aspx$1" />此时“$1”匹配的是(/?.+)?,也就是所有的查询字串。

(2) 当目标URL包含自定义查询字串的时候:

<rewrite url="^~/mypage(/?(.+))?$"

 to="~/default.aspx?page=mypage&$2" />注意此时需要使用“&amp;”来代替“&”,这是XML文档语法的需要。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bl_song/archive/2009/11/03/4761343.aspx

(2)

<rewriter>
    
<rewrite url="~/default.html$" to="~/default.aspx" processing="stop" />
    
<rewrtie url="^~/(/d+)/(/d+).html" to="~/Default.aspx?id=$1&amp;artcleid=$2" />//多个参数
    
<rewrite url="~/news_([0-9]+).html$" to="~/Article/ArticleShow.aspx?id=$1" processing="stop" />
    
<rewrite url="~/Result_([0-9]+).aspx$" to="~/Job/Company/Result.aspx?cid=$1" processing="stop" />
    
<rewrite url="~/company_([0-9]+).html$" to="~/Company/$1/index.html" processing="stop" />
    
<rewrite url="~/Resume/([0-9]+)_([0-9]+).html$" to="~/Resume/$1/Resume_$2.html" processing="stop" />
    
<rewrite url="~/([0-9]+)_([0-9]+).html$" to="~/company/$1/job_$2.html" processing="stop" />
    
<rewrite url="~/job_([0-9]+).html$" to="~/company/$1/jobs_$1.html" processing="stop" />
    
<rewrite url="~/news_l([0-9]+)_1.html$" to="~/company/$1/$1_news.html" processing="stop" />
    
<rewrite url="~/news_([0-9]+)v([0-9]+).html$" to="~/company/$1/n_$2.html" processing="stop" />
    
<rewrite url="~/contact_([0-9]+).html$" to="~/company/$1/contact.html" processing="stop" />
    
<rewrite url="~/a_(.+)_(.+).aspx$" to="~/a.aspx?id=$1&amp;id1=$2" processing="stop" />//多个参数
 
</rewriter> 

 

5.博客园资源整理:

JeffreyZhao 赵劼的博文:

重提URL Rewrite(1):IIS与ASP.NET

重提URL Rewrite(2):使用已有组件进行URL Rewrite

重提URL Rewrite(3):在URL Rewrite后保持PostBack地址 //这篇文章对我帮助最大了,在实际项目中是一定要用到的。

重提URL Rewrite(4):不同级别URL Rewrite的一些细节与特点

 

6.Intelligencia.UrlRewriter和fck editor冲突问题:

  在IIS7/7.5环境中,,建议使用集成模式,不要使用Classic模式,否则UrlRewriter和fck editor会有冲突,造成fck editor的页面无法执行URL。

 

 

 

转:http://dev.tot.name/dotnet/html/20100519/20100519103834.htm

IIS7/Win7中使用Intelligencia.UrlRewriter实现url重写时候不能正常使用原因

下载引用Intelligencia.UrlRewriter.dll   第一步,在配置文件configSections结点中添加下面配置   第二步,在httpModules结点内添加...

使用Intelligencia.UrlRewriter重写URL

添加Intelligencia.UrlRewriter.dll的引用,然后在web.config中设置三个地方即可:在节中加上;在节中加上;在节中添加      这段~/(.+).html$要重写的...
  • gui0605
  • gui0605
  • 2008年06月11日 13:41
  • 3438

Intelligencia.UrlRewriter在IIS 7.0下的完全配置攻略

在项目中,之前公司是使用IIS 7.0官方的URL重写模块,官方的使用说明请参见官方URLRewrite  ,添加伪静态支持,后来经理问我有没有涉及伪静态,我说之前项目中我一直是用Intelligen...

[.NET] Intelligencia.UrlRewriter 2.0 配置

在.NET项目中想将ASPX页面生成静态页面,找了个开源的地址重写项目Intelligencia.UrlRewriter,该开源项目1.8和2.0版本的配置不一样,搜索了网上配置的方法基本都是1.8以...

Intelligencia.UrlRewriter 使用方法

  • 2008年10月09日 07:10
  • 48KB
  • 下载

Intelligencia.UrlRewriter.dll实现URL重写

1、下载Intelligencia.UrlRewriter.dll,地址:http://sourceforge.net/projects/urlrewriter/files/。下载的中包了      ...

Intelligencia.UrlRewriter

  • 2012年07月25日 21:04
  • 53KB
  • 下载

(转)C++关键字:friend 的使用说明

1、为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率       具体来说:为了使其他类的成员函数直接访问该类的私有变量       即:允许外面的类或函数去访问类的私有变量和...

Intelligencia.UrlRewriter.dll

  • 2010年08月13日 10:10
  • 60KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Intelligencia.UrlRewriter使用说明(转)
举报原因:
原因补充:

(最多只允许输入30个字)