投稿 评论 顶部

实现.net伪静态

佚名 网络安全

(本文原本是发在QQ空间里,今天突然看到,就搞到csdn中了,希望能让更多初学者看到,嘿嘿,高手如果觉得不好就不要砸鸡蛋了,呵呵)

好久没敲代码了,闲来无事敲敲,权当练练手。不过却不知道要敲啥东东好,想起以前一直想弄URL伪静态,一直没啥时间,就决定搞这玩意了。

好久没敲了,连那些“蝌蚪文”都快认不清了,老敲错,哎!惭愧呀.......P话少说,进入正题,呼呼....

伪静态----言下之意就是假的静态页面,其实这页面根本不存在的。

首先得用到微软的一个UrlReWriter.dll组件,嘿,乖乖的去下了个,下载地址:http://www.rickel.cn/uploads/DevTools/MSDNURLRewriting.msi????? 将底下的UrlReWriter.dll引用到解决方案中来。

到IIS中配置,将网站发布到本地,这个发布就不用多说了,然后在网站的根目录下?? 右键-->属性-->主目录或虚拟目录-->配置-->应用程序配置-->添加【在可执行文件中填入C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll? 当然这个前提是.netframework装在C盘,拓展名写入.html(其他静态页面的格式也行),检查文件是否存在的钩钩去掉】这样本地上的IIS配置就搞定了,接下去就是webconfig的配置。

在<configuration>节点下找到<configSections>节点,在这个节点下加入
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />

接着配置重写规则【这里示例的规则为:将如news-discription.aspx?NID=9的页面重写为news-discription-9.html,则访问的时候只需访问news-discription-9.html就行,规则视个人而定.....】,这个要放到跟<system.web>目录同级,具体如下:
? <RewriterConfig>
??? <Rules>
????? <!--重写规则,可以写多个-->
????? <RewriterRule>
??????? <LookFor>~/news-discription-(.[0-9]*).html</LookFor>

??????? <SendTo>~/news-discription.aspx?NID=$1</SendTo><!--注:lookfor和sendto是成双出现的-->

????? </RewriterRule>
??? </Rules>
? </RewriterConfig>

找到<httpHandlers>在这个节点下写入
????? <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
????? <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />

恩,这样就大功告成了,不过原本页面中的源码要稍微修改一下,嘿,将那些链接如news-discription.aspx?NID=9通过代码修改为news-discription-9.html就行了,哈