在asp.net中如何實現僞靜態頁

 

    我在這裏就不過多討論靜態頁、僞靜態頁、動態頁的長短利弊了。只是單純的講解如何在asp.net中如何實現僞靜態頁,以幫助有這方面有需求的朋友,快速解決boss派下來的任務。(拿獎金的時候,記得有我一份功勞哦~~)

以下項目結構的一個截圖,特別簡單的文件結構,如下

接下來介紹操作過程:

1.       加入兩個dll的引用,分別是:ActionlessForm.dll和URLRewriter.dll,其中URLRewriter.dll用於將地址重寫;ActionlessForm.dll用於在做列表頁時,分頁也能做成僞靜態的效果。如果沒有這兩個地址,可以從網上下載到,或通過這個賬號聯繫我,或者QQ:635564389交流。

2.       修改web.config文件,在configuration節下加入代碼如下:

  <configSections>

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

  </configSections>

  <RewriterConfig>

    <Rules>

      <RewriterRule>

        <LookFor>~/list(.[0-9]*)\.html</LookFor>

        <SendTo>~/List.aspx?k=$1</SendTo>

      </RewriterRule>

    </Rules>

  </RewriterConfig>

在system.web節加入如下代碼:

      <httpHandlers>

        <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

        <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

      </httpHandlers>

說明:在rules節中,需要指定僞靜態的解析規則,使用RewriterRule子節寫出具體的規則,如果有多個規則,可以寫多個RewriterRule子節點(這是xml中相當基本的知識,如果不會你要去補一補了哦~~)。在這個例子中,只寫了跳轉到列表頁的僞靜態規則。其中lookfor子節表示出現在url中的地址,也就是你做的超鏈接的地址。(什麼?“.[0-9]*”不知道啥意思?你快去翻一翻正則表達式吧)。Sendto子節表示服務器iis接收到地址請求後,會將上述地址轉換到哪個aspx文件去。

3.       在IIS中爲.html添加配置解析,與.aspx的解析一樣

4.       好了,開始寫我們比較熟悉的HTML代碼吧

在default.aspx文件中寫下如下代碼:<a href="list0.html">查看圖書列表</a>

在點擊鏈接後,會自動使用list.aspx?k=0這個頁面顯示內容,但是地址欄卻是一個html文件。神奇吧?

到此爲止,例子就做完了。

 

提高:可以學習一下加密的知識,將正則部分的內容進行深一步的定義,實現自定義的加密與解密,讓你的請求更加安全。還有就是服務器處理文件不要使用太普通的文件名稱,儘量複雜一些,也利於安全管理。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章