總之,感覺網站的URL上面有參數是一件很彆扭的事情,一方面很容易被注入,另一方面,參數傳遞很容易泄露一些有用的資訊。
而這篇文章主要針對的是網站URL顯示的偽靜態化,這樣就拋棄了直接產生純靜態頁的麻煩,而且能夠很好的保護使用者隱私,同時網站安全性也會有一定效能的提升。
主要操作過程如下:
首先,我們需要一個微軟的URLReWriter組件,這裡的下載地址我給提供下:
http://download.microsoft.com/download/0/4/6/0463611e-a3f9-490d-a08c-877a83b797cf/MSDNURLRewriting.msi
然後就是建立一個網站,然後通過“添加引用”把這個dll檔案添加到項目中。
我建立的網站頁面是一個簡單的前台新聞發布系統,頁面如下:
然後就是列表頁面:
然後就是上面的標題為“3333333”的詳細資料顯示頁面,具體的顯示頁面為:
那麼針對這樣的頁面,我們來進行偽靜態化,首先是需要配置webconfig
如下圖所示:
要注意的就是其中的<LookFor></LookFor>和<SendTO></SendTO>節點,寫到LookFor節點中的URL路徑是對外公布的URL路徑,而SendTO節點中的URL路徑則是IIS進行解析的時候返回的真實的路徑。上圖中節點一部分就是只要是類似字母d後面跟數位都交給NewsListaspx帶參返回解析;而節點二部分就是只要是類似字母dd後面跟數位都交給NewsDetails.aspx帶參返回處理;而節點三就是把html請求頁面轉為aspx請求返回。
還需要在<HttpHandlers>節點下面添加如下模組:
這些設定好後,但是我們的IIS預設是不能夠直接解析html尾碼的(只要是沒添加),那麼就需要配置IIS,配置路徑如下:
開啟IIS—》右擊網站—》屬性—》切換到“主目錄”標籤—》點擊“配置”按鈕—》切換到“映射”標籤—》雙擊“.aspx”,在彈出的視窗中,複製“可執行檔”後面的字串—》單擊“添加”—》輸入拷貝的可執行檔路徑---à去掉“檢查檔案是否存在”勾選框,最後應用即可。
配置完成後,在你的網站上面,只要類似有
<a href="NewsList.aspx?ID=<%#Eval(“ID”)%>"><%#Eval("Name") %></a>
修改成
<a href= d<%#Eval("ID") %>.html"><%#Eval("Name") %></a>
並且把
<a href="NewsDetails.aspx?NewsID=<%#Eval(“ID”)%>"><%#Eval("Title") %></a>
修改成
<a href="dd<%#Eval("ID") %>.html"><%#Eval("Title") %></a>
最後利用iis訪問即可,設定完畢