.net 实现 URL重写,伪静态
一,獲得Mircosoft URLRewriter.dll:
獲得Mircosoft URLRewriter.dll可以到http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?mfr=true
?
下載完畢后,導入工程,我這里沒有對該工程做任何修改,保留了原來的重寫方式,然后直接在VS2005里面生成.dll文件就可以了。
二,使用該dll文件:
添加引用,搞定。
三,頁面方面的設計,這里不在贅述了,我會放一個下載包,有興趣的朋友下載來看看吧,代碼寫的比較亂。
四,web.config的配置
這部是非常關鍵的,也是靜態(tài)化能否成功的關鍵。
view plaincopy to clipboardprint?
<?xml version="1.0"?>
<configuration>
<configSections>
??? <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
??????? <Rules>
??????????? <RewriterRule>
??????????????? <LookFor>~/web/new/type/(.[0-9]*)\.html</LookFor>
??????? <SendTo>~/web/new.aspx?id=$1</SendTo>
??????????? </RewriterRule>
????? <RewriterRule>
??????? <LookFor>~/web/index.html</LookFor>
??????? <SendTo>~/web/index.aspx</SendTo>
????? </RewriterRule>
??????? </Rules>
??? </RewriterConfig>
??? <system.web>
??? <httpHandlers>
????? <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
????? <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
??? </httpHandlers>
??????? <compilation debug="true"/></system.web>
</configuration>
<?xml version="1.0"?>
<configuration>
<configSections>
??? <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
??????? <Rules>
??????????? <RewriterRule>
??????????????? <LookFor>~/web/new/type/(.[0-9]*)\.html</LookFor>
??????? <SendTo>~/web/new.aspx?id=$1</SendTo>
??????????? </RewriterRule>
????? <RewriterRule>
??????? <LookFor>~/web/index.html</LookFor>
??????? <SendTo>~/web/index.aspx</SendTo>
????? </RewriterRule>
??????? </Rules>
??? </RewriterConfig>
??? <system.web>
??? <httpHandlers>
????? <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
????? <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
??? </httpHandlers>
??????? <compilation debug="true"/></system.web>
</configuration>
這里簡單介紹一下:
view plaincopy to clipboardprint?
<RewriterConfig>
?? <Rules>
?? <RewriterRule>
????? <LookFor>要查找的模式</LookFor>
????? <SendTo>要用來替換模式的字符串</SendTo>
?? </RewriterRule>
?? <RewriterRule>
????? <LookFor>要查找的模式</LookFor>
????? <SendTo>要用來替換模式的字符串</SendTo>
?? </RewriterRule>
?? </Rules>
</RewriterConfig>
<RewriterConfig>
?? <Rules>
?? <RewriterRule>
????? <LookFor>要查找的模式</LookFor>
????? <SendTo>要用來替換模式的字符串</SendTo>
?? </RewriterRule>
?? <RewriterRule>
????? <LookFor>要查找的模式</LookFor>
????? <SendTo>要用來替換模式的字符串</SendTo>
?? </RewriterRule>
?? </Rules>
</RewriterConfig>
httpHandlers的設置主要是配合IIS將請求重新定義處理,這里也比較關鍵,如果不存在合理的httpHandlers,那么,訪問肯定會失敗的。
關于正則表達式,可以到百度里搜索:"常用正則表達式",會有很多。
五.配置IIS解析.html文件
右鍵點我的電腦-->管理-->展開'服務和應用程序'-->internet信息服務-->找到你共享的目錄-->右鍵點擊屬性 -->點擊'配置'-->映射下面 -->找到.aspx的可執(zhí)行文件路徑 復制路徑-->粘貼路徑-->擴展名為".html"-->然后把檢查文件是否存在的勾去掉這樣就可以了,如果遇到“確定”按鈕失效,可以用鍵盤事件編輯路徑即可解決。
轉(zhuǎn)載于:https://www.cnblogs.com/tiantangwater/archive/2009/08/04/1538624.html
總結(jié)
以上是生活随笔為你收集整理的.net 实现 URL重写,伪静态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BCB线程的互斥与同步
- 下一篇: scala初学之函数定义、流程控制、异常