在ASP.Net2.0中使用UrlRewritingNet实现链接重写
很多時候我們需要鏈接轉向(Url Rewriting),例如二級域名轉向、文章訪問鏈接等場合。
讓我們看兩個例子:
1 你現在看到的當前作者的博客園的域名:
http://deymmtd.cnblogs.com 實際上是 http://www.cnblogs.com/?的一種鏈接重寫(Url Rewriting)。
2 codeproject上的文章,我們獲取的地址都是以文章主要關鍵字做的網頁名稱:
http://www.codeproject.com/cs/webservices/wsdlparser.asp?
個人覺得實際的文章鏈接可能是如下格式(純屬猜想)
http://www.codeproject.com/news.asp?id=123456??
那么如何在Asp.net2.0中如何實現鏈接重寫呢?
可以采用UrlRewritingNet.UrlRewriter.dll來輕松實現
UrlRewritingNet.UrlRewriter.dll 可從其官方網站下載:http://www.urlrewriting.net
我們要做的就是進行Web.Config文件的設置
0 設置之前需要添加引用:UrlRewritingNet.UrlRewriter.dll
1 <configSections>間添加:
??<configSections>
??<section name="urlrewritingnet" restartOnExternalChanges="true" requirePermission="false" type="UrlRewritingNet.Configuration.UrlRewriteSection, UrlRewritingNet.UrlRewriter"/>
?</configSections>
2???添加httpModules
? <httpModules>
???? ?<add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/>
??</httpModules>
3 添加鏈接重寫的設置
?<urlrewritingnet rewriteOnlyVirtualUrls="true" contextItemsPrefix="QueryString" defaultPage="default.aspx" defaultProvider="RegEx" xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
??<rewrites>
???<add name="Rewrite1" virtualUrl="^http\://(.*)/UrlRewritingTest/test.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/default.aspx" rewrite="Domain" ignoreCase="true"/>
???<add name="Rewrite2" virtualUrl="^http\://(.*)/UrlRewritingTest/test1.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/info.aspx?year=2007&month=3&day=9" rewrite="Domain" ignoreCase="true"/>
??</rewrites>
?</urlrewritingnet>
完整的一個Web.Config文件
<configuration>
????<configSections>
????????<section?name="urlrewritingnet"?restartOnExternalChanges="true"?requirePermission="false"?type="UrlRewritingNet.Configuration.UrlRewriteSection,?UrlRewritingNet.UrlRewriter"/>
????</configSections>
????<urlrewritingnet?rewriteOnlyVirtualUrls="true"?contextItemsPrefix="QueryString"?defaultPage="default.aspx"?defaultProvider="RegEx"?xmlns="http://www.urlrewriting.net/schemas/config/2006/07">
????????<rewrites>
????????????<add?name="Rewrite1"?virtualUrl="^http\://(.*)/UrlRewritingTest/test.aspx"?rewriteUrlParameter="ExcludeFromClientQueryString"?destinationUrl="~/default.aspx"?rewrite="Domain"?ignoreCase="true"/>
????????????<add?name="Rewrite2"?virtualUrl="^http\://(.*)/UrlRewritingTest/test1.aspx"?rewriteUrlParameter="ExcludeFromClientQueryString"?destinationUrl="~/info.aspx?year=2007&month=3&day=9"?rewrite="Domain"?ignoreCase="true"/>
????????????<add?name="Rewrite3"?virtualUrl="^http\://(.*)/UrlRewritingTest/test(\d{4})(\d{2})(\d{2}).aspx"?rewriteUrlParameter="ExcludeFromClientQueryString"?destinationUrl="~/info.aspx?year=$2&month=$3&day=$4"?rewrite="Domain"?ignoreCase="true"/>
????????????<add?name="Rewrite4"?virtualUrl="^http\://(.*)/UrlRewritingTest/(\d{4})/(\d{2})/(\d{2})/info.aspx"?rewriteUrlParameter="ExcludeFromClientQueryString"?destinationUrl="~/info.aspx?year=$2&month=$3&day=$4"?rewrite="Domain"?ignoreCase="true"/>
??????<add?name="Rewrite5"?virtualUrl="^http\://(.*)/UrlRewritingTest/stock(\d{6}).aspx"?rewriteUrlParameter="ExcludeFromClientQueryString"?destinationUrl="~/stockinfo.aspx?code=$2"?rewrite="Domain"?ignoreCase="true"/>
????????</rewrites>
????</urlrewritingnet>
????<appSettings/>
????<system.web>
????????<httpModules>
????????????<add?name="UrlRewriteModule"?type="UrlRewritingNet.Web.UrlRewriteModule,?UrlRewritingNet.UrlRewriter"/>
????????</httpModules>
????????<compilation?debug="true"/>
??</system.web>
</configuration>
deymmtd
轉載于:https://www.cnblogs.com/deymmtd/archive/2009/01/05/1368780.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的在ASP.Net2.0中使用UrlRewritingNet实现链接重写的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本Blog链接交换
- 下一篇: 游戏玩家行为基本模式的初探小汇