.net伪静态页应用
当然,程序直接生成静态页面可以实现的
但是那样要生成很多这种页面以及文件夹
而且在数据量大的情况下生成是很浪费时间的
在这种情况下就要实现url重写了,当然就很多种方法
下面介绍的是微软的URLRewriter方法
1.首先下载URLRewriter.dll,下载之后直接复制到你的网站的bin目录中
2.配置你的web.config文件
在<configuration>节点下加
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>
<RewriterConfig>
<Rules>
<!--一下三个是我自己写的测试的,当然你可以写很多个 -->
<!--这个是把aspx?id=1">http://localhost:2001/default.aspx?id=1 生成http://localhost:2001/d1.aspx 这种页面 -->
<RewriterRule>
<LookFor>~/d(\d{0,5})\.aspx</LookFor>
<SendTo>~/default.aspx?ID=$1</SendTo>
</RewriterRule>
<!--这个是把http://localhost:2001/article.aspx?id=1 生成http://localhost:2001/1/a.html 这种页面 -->
<RewriterRule>
<LookFor>~/(\d{0,5})/a\.html</LookFor>
<SendTo>~/article.aspx?id=$1</SendTo>
</RewriterRule>
<!--这个是把http://localhost:2001/test.aspx?id=1 生成http://localhost:2001/1/ 这种页面 -->
<RewriterRule>
<LookFor>~/(\d{0,5})/</LookFor>
<SendTo>~/test.aspx?id=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
同时还要在<system.web>配置节下加
<httpHandlers>
<add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
<add verb="*" path="*" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
</httpHandlers>
3.好了,基本上就可以了,但是还有重要一点千万不要忘了
以上有三种情况的url生成
针对第一种情况,第一第二步配置完就可以实现了
可对第二种和第三种url情况,还需要进行一下配置
先说第二种情况:因为咱们重写的是.html后缀
所以需要在iis中进行.html映射,方法如下:
右击站点-属性-主目录-配置
在打开页面找扩展名.aspx,双击之后弹出窗口内复制可执行文件
一般是C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
复制完之后点添加在弹出窗口把内容复制到可执行文件
扩展名.html当然这个你可以任意写了,不过要和
<add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
保持一致.
同时去掉确认文件是否存在,确定即可
完成之后输入http://localhost:2001/1/a.html
是不是就可以访问了?爽吧
下面介绍第三种情况,生成目录
这里面稍微有点复杂,同样配置iis
还是在那个弹出窗口,点插入
把复制的文件即C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
复制到可执行文件框内,同时去掉确认文件是否存在,确定即可
这样输入http://localhost:2001/1/,是不是就可以访问了?嘿嘿
可能读者会有疑问了:现在设置的这个和第二种设置的有什么区别?
现在设置的其实是进行*映射,即把所有的文件都进行url重写处理程序处理
这时其实就可以把.html 以及自带的.aspx等映射去掉,同样可以生成.html/.aspx/ url
好了,如果还想其他的扩展大家就尽情扩展吧。
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- winform下通过webclient使用非流方式上传(post)数据和
- Asp.net MVC源码分析--Model Validation(Client端)实现(2)
- asp.net js模拟Button点击事件
- asp.net 六大内置对象(2)
- Pro ASP.NET MVC 3 Framework学习笔记之九
- 谈.Net委托与线程——创建无阻塞的异步调用(一
- 教你如何来恢复一个丢失的数据文件
- MVC中一个表单实现多个提交按钮(一个action搞定
- 微软ASP.NET站点部署指南(11):部署SQL Server数据
- ASP.NET数据格式的Format--DataFormatString