一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net URL重寫簡化版 速學URL重寫

asp.net URL重寫簡化版 速學URL重寫

2019-07-02 15:12服務器之家 ASP.NET教程

在 asp.net 里實現 URL重寫(URLRewriter)的一個最簡單的方法。 參考了 (作者 Scott Mitchell 翻譯:Janssen )的大作,雖然沒有完全看明白,但是也照貓畫虎地做了一個,頗有成就感。寫出來分享一下。 原作里講了很多的原理,這里就不

在 asp.net 里實現 URL重寫(URLRewriter)的一個最簡單的方法。 
參考了 (作者 Scott Mitchell 翻譯:Janssen )的大作,雖然沒有完全看明白,但是也照貓畫虎地做了一個,頗有“成就”感。寫出來分享一下。 
原作里講了很多的原理,這里就不說了(其實我也不懂)。這里就寫操作過程吧。目的是實現一個最簡單的能實現 URL重寫 的程序。 
1、需要設置一下IIS里的站點屬性。 

2、修改web.config的內容。 

復制代碼代碼如下:

<system.web> 
<httpHandlers> 
<add verb="*" path="*.zhtml" type="ZDIL.URLRewriter.RewriterFactoryHandler, ZDILURLRewriter" /> 
</httpHandlers> 
</system.web> 


其中*.zhtml 就是地址欄里面寫的網頁的擴展名,就是給用戶看的,這個可以隨意改(但是要符合擴展名的規則!)。當然要和第一步里面的設置相一致才行。 
3、寫一個類。 

代碼 
復制代碼代碼如下:

using System; 
using System.IO; 
using System.Web; 
using System.Web.UI; 
namespace ZDIL.URLRewriter 

/**//// <summary> 
/// URL重寫 
/// </summary> 
public class RewriterFactoryHandler : IHttpHandlerFactory 

/**//// <summary> 
/// GetHandler is executed by the ASP.NET pipeline after the associated HttpModules have run. The job of 
/// GetHandler is to return an instance of an HttpHandler that can process the page. 
/// </summary> 
/// <param name="context">The HttpContext for this request.</param> 
/// <param name="requestType">The HTTP data transfer method (<b>GET</b> or <b>POST</b>)</param> 
/// <param name="url">The RawUrl of the requested resource.</param> 
/// <param name="pathTranslated">The physical path to the requested resource.</param> 
/// <returns>An instance that implements IHttpHandler; specifically, an HttpHandler instance returned 
/// by the <b>PageParser</b> class, which is the same class that the default ASP.NET PageHandlerFactory delegates 
/// to.</returns> 
public virtual IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated) 

string sendToUrl = url; //地址欄里面的地址 
string filePath = pathTranslated; 
string sendToURLString = "/web/index.aspx"; //真正要訪問的頁面 
string queryString = ""; //參數。比如 ?id=123 
filePath = context.Server.MapPath(sendToURLString); //物理地址 
//這句最重要了。轉向了。 
context.RewritePath(sendToURLString, String.Empty, queryString); 
return PageParser.GetCompiledPageInstance(url, filePath, context); 

public virtual void ReleaseHandler(IHttpHandler handler) 





這個類呢,要寫在一個單獨的項目里面,然后編譯成 ZDILURLRewriter.DLL文件。(注意文件名,寫錯了就不能正常運行了)。 
4、完成了。 
打開IE ,在地址欄里輸入 http://.../1.zhtml。 
瀏覽者看到是一個靜態頁的地址,但是實際上訪問的卻是 /web/index.aspx 這個動態網頁。 
怎么樣簡單吧。 
當然了,這個是最簡單的,簡單到了“不能用”的地步了。因為他會把所有的 *.zhtml 的訪問都“重寫”到 /web/index.aspx 。 
至于把什么樣的網頁重寫到哪個網頁,這里就不介紹了(這里只講方法,不講實現的細節)。 
方法很多了,原作是通過正則來匹配的,我是通過 string sendToUrl = url; 來判斷的。 
其他的就看你們的需要了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男人爱看的网站 | 久久视频这有精品63在线国产 | 日本xxxx19视频 | 538免费精品视频搬运工 | 污软件在线观看 | kuaibo成人播放器 | 2018高清国产一道国产 | 成人伊人青草久久综合网破解版 | 十八女下面流水不遮免费 | 欧美折磨另类系列sm | 91免费精品国自产拍在线不卡 | 加勒比成人 | 99精品国产自在现线观看 | 91粉色视频在线导航 | 性欧美黑人巨大喷潮xxoo | 亚洲激情网 | 日本色女 | 国产麻豆剧果冻传媒影视4934 | 国产激情在线 | 日韩乱淫 | 日韩精品在线视频观看 | 国产午夜久久精品 | 午夜私人影院在线观看 | 午夜精品久久久久久中宇 | 亚洲国产精品一区二区久久 | 人人揉揉香蕉 | 国语视频高清在线观看 | 欧美日韩精品在线观看 | 日韩一区二区三区四区区区 | 教师波多野结衣在线播放 | 国色天香高清版 | 青草悠悠视频在线观看 | 国产精品久久久久久久久免费观看 | 貂蝉沦为姓奴小说 | 国产人妖xxxxx免费看 | 欧美理论片手机在线观看片免费 | 国产福利片在线 易阳 | 亚洲人影院 | 55夜色66夜亚州精品站 | 国产成人精品视频一区 | 精品欧美小视频在线观看 |