日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[ASP.net]ASP.net的RUL重写

發布時間:2024/4/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ASP.net]ASP.net的RUL重写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

ASP.netRUL重寫<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

?

有關于URL的重寫,本文也只是拿來主意。相繼有MS的組件“URLRewriter”和在Global.asax里的“Application_BeginRequest()”編碼方式,以及IIS里的ISAPI設置。

娜列下來,實現方法也都很簡單。

?

方法一:MS組件

這里也不用詳解了,相關請看:

http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx

用法很簡單,只需要把組件URLRewriter.dll拷到應用程序的bin目錄下,然后在web.config下加入如下代碼:

<configuration></configuration>中加入:

???? <configSections>

???? ???? <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

???? </configSections>

????

???? <RewriterConfig>

???? ???? <Rules>

???????? ???? <RewriterRule>

????????????? ???? <LookFor>~/(\d{4})/(\d{2})/Default\.aspx</LookFor>

????????????? ???? <SendTo>~/Default.aspx?ID=$1</SendTo>

???????? ???? </RewriterRule>

???? ???? </Rules>

???? </RewriterConfig>

然后在<system.web></system.web>中加入:

<httpHandlers>

?? <add verb="*" path="*.aspx"

??????? type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

</httpHandlers>

?

最后在地址欄上鍵入:http://localhost/Test/2004/12/News.aspx

效果出來了。

上面的<LookFor>~/(\d{4})/(\d{2})/News\.aspx</LookFor>這句這正則表達式URL,即被重寫的URL,而<SendTo>~/Default.aspx?ID=$1</SendTo>這一句為原始URL地址。其中的$1為第一個正則表達式值(上面例子為:2004),以此類推,第二個即為$2?

?

方法二:Application_BeginRequest()

在應用程序中新建一個XML文件,文件內容為:文件名ReWriter.config

<?xml version="1.0" encoding="utf-8" ?>

<ReWriterUrls>

???? <rule>

???? ???? <old>(.*)/News/(\d{4})/Default\.aspx</old>

???? ???? <new>../../Default.aspx?id=$2&amp;type=$3</new>

???? </rule>

</ReWriterUrls>

Global.asax文件中的Application_BeginRequest(Object sender, EventArgs e)加入代碼:

???????? ???? try

????????????? {

????????????? ???? string path=Server.MapPath("~/ReWriter.config");

????????????? ???? XPathDocument myXPathDocument = new XPathDocument(path);

????????????? ???? XPathNavigator myXPathNavigator = myXPathDocument.CreateNavigator();

????????????? ???? XPathNodeIterator myXPathNodeIterator =? myXPathNavigator.Select ("//rule");

????????????? ???? System.Text.RegularExpressions.Regex oReg;

????????????? ???? string ReWriteUrl;

????????????? ???? while (myXPathNodeIterator.MoveNext())

????????????? ???? {

????????????? ???? ???? //oReg=new Regex(oNode.SelectSingleNode("url/text()").Value);

????????????? ???? ???? XPathNavigator nav2 = myXPathNodeIterator.Current.Clone();

????????????? ???????? string oldString="",newString="";

????????????? ???? ???? XPathNodeIterator it2 = nav2.Select("old");

????????????? ???? ???? while(it2.MoveNext())

????????????? ???????? {

????????????? ???????? ???? oldString = it2.Current.Value;

????????????? ???????? ???? break;

????????????? ???????? }

????????????? ???????? it2 = nav2.Select("new");

????????????? ???? ???? while(it2.MoveNext())

????????????? ???????? {

????????????? ???????? ???? newString = it2.Current.Value;

????????????? ???????? ???? break;

????????????? ???????? }

????????????? ???? ???? if(oldString != "" &&? newString != "")

????????????? ???????? {

????????????? ???????? ???? oReg = new System.Text.RegularExpressions.Regex(oldString);

????????????? ???????? ???? if(oReg.IsMatch(Request.Url.ToString()))

????????????? ????????????? {

????????????? ????????????? ???? ReWriteUrl = oReg.Replace(Request.Url.ToString(),newString);

????????????? ????????????? ???? HttpContext.Current.RewritePath(ReWriteUrl);

????????????? ????????????? ???? break;

????????????? ????????????? }

????????????? ???????? }

????????????? ???? }

????????????? }

???????? ???? catch

????????????? {

????????????? }

?

最后在地址欄上鍵入:http://localhost/Test/News/2004/Default.aspx

效果出來了。

轉載于:https://www.cnblogs.com/HD/archive/2005/06/20/177633.html

總結

以上是生活随笔為你收集整理的[ASP.net]ASP.net的RUL重写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。