在asp.net中如何实现伪静态页 [转]

时间:2023-11-24 14:45:50

我在这里就不过多讨论静态页、伪静态页、动态页的长短利弊了。只是单纯的讲解如何在asp.net中如何实现伪静态页,以帮助有这方面有需求的朋友,快速解决boss派下来的任务。(拿奖金的时候,记得有我一份功劳哦~~)

以下项目结构的一个截图,特别简单的文件结构,如下

在asp.net中如何实现伪静态页 [转]

接下来介绍操作过程:

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文件。神奇吧?

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

提高:可以学习一下加密的知识,将正则部分的内容进行深一步的定义,实现自定义的加密与解密,让你的请求更加安全。还有就是服务器处理文件不要使用太普通的文件名称,尽量复杂一些,也利于安全管理。

http://blog.csdn.net/qitian67/article/details/7310238?reload