全面解析ASP.NET2.0下的URL重写
2009-05-05 13:41
337 查看
1、ISAPI(使用开源组件IIRF)
IIRF,对于IIRF,对应于IsapiRewrite4.dll,在相同的目录会有一个IsapiRewrite4.ini文件,除了默认的一些设置,我们在文件末尾添加了几条自定义规则如下:
# Custom RewriteRules
RewriteRule ^/UrlRewriteSample/test(.*).aspx /UrlRewriteSample/Default.aspx?page=$1
RewriteRule ^/UrlRewriteSample/folder/(.*).aspx /UrlRewriteSample/Default.aspx?folder=$1
RewriteRule ^/UrlRewriteSample/folder/? /UrlRewriteSample/Default.aspx?folder=default
熟悉正则表达式的朋友应该很容易理解上面这三条规则。
规则一将形如testXXX.aspx这样的页面访问,重写为Default.aspx?page=XXX这样的页面;
规则二将形如folder/XXX.aspx的路径,重写为Default.aspx?folder=XXX这样的页面;
规则三将不带任何文件的folder目录的访问,重写为Default.aspx?folder=default这样的页面。
2、ASP.NET2.0内置 urlMappings
urlMappings是ASP.NET2.0内置支持的URL重写配置块,它应该包含在web.config的<system.web>配置块中。但是,这个内置的URL重写支持不支持正则表达式,因而只能用来实现一对一的路径和页面的重写。urlMappings的配置内容包含在下面的Web.config文件中。
3、NBear.Web.Modules.UrlRewriteModule则是NBear中实现的一个基于HTTPModule的URL重写实现,它允许使用正则表达式来描述重写规则。
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="UrlRewriteRules" type="NBear.Web.Modules.UrlRewriteRules, NBear.Web"/>
</configSections>
<UrlRewriteRules>
<Rule key="^/UrlRewriteSample/sample(.*).aspx" value="/UrlRewriteSample/Default.aspx?page=$1" />
<Rule key="^/UrlRewriteSample/section/(.*).aspx" value="/UrlRewriteSample/Default.aspx?section=$1" />
</UrlRewriteRules>
<system.web>
<urlMappings enabled="true">
<add url="~/buildin/Default.aspx" mappedUrl="~/Default.aspx?buildin=default" />
<add url="~/buildin.aspx" mappedUrl="~/Default.aspx?page=buildin" />
<add url="~/notexistfolder/buildin.aspx" mappedUrl="~/Default.aspx?page=buildin" />
</urlMappings>
<compilation debug="true">
<assemblies/>
</compilation>
<httpModules>
<add type="NBear.Web.Modules.UrlRewriteModule, NBear.Web" name="UrlRewriteModule"/>
</httpModules>
</system.web>
</configuration>
IIRF,对于IIRF,对应于IsapiRewrite4.dll,在相同的目录会有一个IsapiRewrite4.ini文件,除了默认的一些设置,我们在文件末尾添加了几条自定义规则如下:
# Custom RewriteRules
RewriteRule ^/UrlRewriteSample/test(.*).aspx /UrlRewriteSample/Default.aspx?page=$1
RewriteRule ^/UrlRewriteSample/folder/(.*).aspx /UrlRewriteSample/Default.aspx?folder=$1
RewriteRule ^/UrlRewriteSample/folder/? /UrlRewriteSample/Default.aspx?folder=default
熟悉正则表达式的朋友应该很容易理解上面这三条规则。
规则一将形如testXXX.aspx这样的页面访问,重写为Default.aspx?page=XXX这样的页面;
规则二将形如folder/XXX.aspx的路径,重写为Default.aspx?folder=XXX这样的页面;
规则三将不带任何文件的folder目录的访问,重写为Default.aspx?folder=default这样的页面。
2、ASP.NET2.0内置 urlMappings
urlMappings是ASP.NET2.0内置支持的URL重写配置块,它应该包含在web.config的<system.web>配置块中。但是,这个内置的URL重写支持不支持正则表达式,因而只能用来实现一对一的路径和页面的重写。urlMappings的配置内容包含在下面的Web.config文件中。
3、NBear.Web.Modules.UrlRewriteModule则是NBear中实现的一个基于HTTPModule的URL重写实现,它允许使用正则表达式来描述重写规则。
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="UrlRewriteRules" type="NBear.Web.Modules.UrlRewriteRules, NBear.Web"/>
</configSections>
<UrlRewriteRules>
<Rule key="^/UrlRewriteSample/sample(.*).aspx" value="/UrlRewriteSample/Default.aspx?page=$1" />
<Rule key="^/UrlRewriteSample/section/(.*).aspx" value="/UrlRewriteSample/Default.aspx?section=$1" />
</UrlRewriteRules>
<system.web>
<urlMappings enabled="true">
<add url="~/buildin/Default.aspx" mappedUrl="~/Default.aspx?buildin=default" />
<add url="~/buildin.aspx" mappedUrl="~/Default.aspx?page=buildin" />
<add url="~/notexistfolder/buildin.aspx" mappedUrl="~/Default.aspx?page=buildin" />
</urlMappings>
<compilation debug="true">
<assemblies/>
</compilation>
<httpModules>
<add type="NBear.Web.Modules.UrlRewriteModule, NBear.Web" name="UrlRewriteModule"/>
</httpModules>
</system.web>
</configuration>
相关文章推荐
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写[转]
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写 --来自Internet
- 全面解析ASP.NET2.0下的URL重写 (转)
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写 (转)
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写
- 全面解析ASP.NET2.0下的URL重写
- 全面解析C#中的异步编程
- 全面解析多种区块链隐私保护解决方案
- 全面解析磁盘分区格式
- 《系统运维全面解析:技术、管理与实践》纠错汇总
- 全面掌握解析XML
- Android WebView使用全面解析(加载网络资源、本地HTML,JS交互)
- 全面解析VERITAS NetBackup6.0