我在這裏就不過多討論靜態頁、僞靜態頁、動態頁的長短利弊了。只是單純的講解如何在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文件。神奇吧?
到此爲止,例子就做完了。
提高:可以學習一下加密的知識,將正則部分的內容進行深一步的定義,實現自定義的加密與解密,讓你的請求更加安全。還有就是服務器處理文件不要使用太普通的文件名稱,儘量複雜一些,也利於安全管理。