URLRewriting_2

      一个更好的解决方法是从web.config文件中使用一个HttpModule来动态的处理URL重写规则。更令人高兴的是,你无需自己动手来编写HttpModule来处理这些任务,已经有几个非常不错的免费版供你使用。以下是其中几个:URLRewriting.Net ,URLRewriter.Net ,Rewrite.Net 。
      在这篇文章中,使用URLRewriting.Net演示一个简单的例子。在开始使用URLRewriting.Net之前,首先从URLRewriting.Net网站下载它,并把它放到你的网站的/bin文件夹下。

    接下来,增加如下配置到你的web.config文件中:

    代码清单2:添加到web.config中的配置

<configSections> 
<section name="urlrewritingnet" requirePermission ="false"
type="UrlRewritingNet.Configuration.UrlRewriteSection,
UrlRewritingNet.UrlRewriter" />
</configSections>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
<httpModules>
<add name="UrlRewriteModule"
type="UrlRewritingNet.Web.UrlRewriteModule,
UrlRewritingNet.UrlRewriter" />
</httpModules>
</system.web>

    现在,在web.config文件中你可以增加下面的代码并输入你自己的URL重写规则。它将实现以下URL重写规则:



    代码清单3:对URLRewriting.Net配置重写规则

<urlrewritingnet 
rewriteOnlyVirtualUrls="true"
contextItemsPrefix="QueryString"
defaultPage = "Default.aspx"
defaultProvider="RegEx"
xmlns="http://www.urlrewriting.net/schemas/config/2006/07" >
<rewrites>
<add name="UserAccount"
virtualUrl="^~/UserAccountV2/(.+).aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/UserAccountV2.aspx?id=$1"
ignoreCase="true" />
<add name="Movies_Action"
virtualUrl="^~/Movies/Action.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Movies.aspx?MovieType=Action"
ignoreCase="true" />
<add name="Movies_Drama"
virtualUrl="^~/Movies/Drama.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Movies.aspx?MovieType=Drama"
ignoreCase="true" />
<add name="Movies_Comedy"
virtualUrl="^~/Movies/Comedy.aspx"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/Movies.aspx?MovieType=Comedy"
ignoreCase="true" />
</rewrites>
</urlrewritingnet>

   如上面所看到的,当使用一个类似URLRewriting.Net的HttpModule的时候,你可以简单的逐一把你的网站重写规则插入到web.config文件中,而不用编写任何代码。这样,无论你的网站规模大小,管理这些URL重写规则变成了一件非常容易的事情。

    值得一提的是,尽管我们这儿的例子非常简单,URLRewriting.Net是一个强大的程序,它具有很多我这儿没有用到的选项。完整的文档和示例应用程序可以从URLRewriting官方网站查看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值