本教程將使用Visual Studio 2013手把手教你實現webform動態頁面的偽靜態。本教程配套的C#源碼工程可通過我的github下載。地址:https://github.com/shellcheng/ReWirteWebform
本文地址:WebForm偽靜態實現及ISAPI_REWRITE介紹
本教程由技術愛好者成笑笑(博客:http://www.chengxiaoxiao.com/)寫作完成。如有轉載,請聲明出處。
本教程內容:
-
偽靜態介紹、作用
-
用代碼實現簡單的偽靜態
-
ISAPI_REWRITE組件的介紹及使用
1.偽靜態介紹、作用
1.1偽靜態介紹、作用
1.1.1為什么要偽靜態
在搜索引擎優化領域,靜態頁面的權重是大於動態頁面的權重的。例如index.aspx會大於index.aspx?id=1的權重。通常情況下,動態頁面中?后面的參數是讀取數據庫內容顯示在前台頁面上的。
很顯然如果id不同所展現的數據也是不同的。但搜索引擎會把所有的頁面例如:index.aspx?id=1、index.aspx?id=2等所有的動態頁面,認定為同一個頁面index.aspx。為了增強搜索引擎的友好度,提高收錄,我們需要實現把動態內容靜態化。
1.1.2實現網頁靜態化
我們很明顯可以實現讀取數據庫內容根據模版生成對應id的靜態頁面。但是像淘寶京東等數以萬計的商品之下,所占用的存儲是海量的,需要大量的硬盤存儲來存儲這些靜態網頁。這是很理想的狀況,但是現實是無法做得到的。
所以偽靜態閃亮登場~~~
1.1.3什么是偽靜態?
偽靜態就是我們把以前的動態參數放入url中通過后台邏輯,顯示對應的數據。說白了就是,把我們以前的index.aspx?id=1的地址改為index-1.aspx頁面(具體的偽靜態的規則自己可以隨便寫的,在這里只是舉例子),把動態參數去掉。我們在后台寫相應的代碼實現讀取數據顯示。
2.用代碼實現簡單的偽靜態(WebFrom版本)
2.1目標:
訪問:index-1.aspx。顯示index.aspx?id=1的數據
2.2實現過程:
2.2.1:通過Visual Studio 2013新建一個web空項目。

2.2.2新建aspx頁面,並在后台頁面添加以下代碼。
后台處理id參數,查詢傳遞到前台界面。

前台頁面顯示數據:

至此我們訪問index.aspx?id=1顯示如下:

2.2.3添加新項Global.asax。
我們主要是重寫aspx頁面生命周期的Application_BeginRequest方法,獲取用戶訪問的地址,根據正則進行匹配。交由原頁面進行處理。

至此我們訪問index-1.aspx可以正確顯示

3.ISAPI_REWRITE組件的介紹及使用
組件下載地址:https://github.com/shellcheng/ReWirteWebform
使用步驟:
打開IIS---添加ISAPI篩選器-----64位機器需要添加32位和64位版本兩個篩選器。
在目錄下添加文件名為.htaccess的文件:

寫入以下內容。RewirteRule后面的則是偽靜態的規則。
微信號:net4k8k(做(4k+8k)+月薪的程序員)
微信名稱:net知識分享
介紹:主要以發布和分享.Net和安卓文章為主,爭做全棧開發工程師,愛學習,愛挑戰,愛編程。
打造C#入門教程。總結自己已經習得的技術體系。分享到網絡。為中國的軟件復興貢獻自己的一份力。
如有不恰當之處,還請指正。
作者:成笑笑
職業:應屆畢業生,找工作中。
本人聯系方式:cxx@chengxiaoxiao.com
我的自媒體:
GitHub:https://github.com/shellcheng
My CnBlogs:http://www.cnblogs.com/happpytoo/
今日頭條:http://toutiao.com/m5443584213/
一點資訊:http://www.yidianzixun.com/home?page=channel&id=m21753
新浪微博:http://weibo.com/5706473282/
搜狐公眾平台:http://mp.i.sohu.com/profile?xpt=NUJENDc2NjZENTIyMjlBRjk4QkIzRDczNTVFMUVFODBAcXEuc29odS5jb20=
