URL重写简单原理:
url重写是截取传入Web请求并自动将请求重定向到其他URL的过程。
比如浏览器发来请求hostname/news/101.html,服务器自动将这个请求中定向为http://hostname/news/list.aspx?id=101。
url重写的优点:
缩短url,隐藏实际路径提高安全性;
易于用户记忆和键入;
易于被搜索引擎收录;
实现URL重写的几个步骤:
第一:
下载MS的URLRewriter.dll,放到你的类文件下
然后点击引用这个DLL文件
URLRewriter.dll下载地址:
1、URL重写urlrewriter.dll组件下载地址(附完整示例代码)
2、微软URL重写组件urlrewriter.dll下载地址
第二:
系统为服务器版的设置:
在IIS的项目下 属性->主目录->配置-> 通配符应用程序映射(执行程序)添加aspx的映射
直接点击插入,在可执行文件框里填入C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll(这个目录取决于你的VS安装目录),然后在“确认文件是否存在”项的勾去掉。确定保存!
系统为非服务器版的设置:
在IIS的项目下 属性->主目录->配置-> 通配符应用程序映射(执行程序)添加aspx的映射
可执行文件:c:windowsmicrosoft.netframeworkv2.0.50727aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选
第三:
然后在 web.config 里设置如下:
<configuration>
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
..................................
<RewriterConfig>
<Rules>
<!--应用规则-->
<RewriterRule>
<LookFor>~/news/(d+).html</LookFor>
<SendTo>
<![CDATA[~/news/list.aspx?page=$1]]>
</SendTo>
</RewriterRule>
<!--可建立多个应用规则和多个参数传值-->
<RewriterRule>
<LookFor>。。。。。。。。</LookFor>
<SendTo>
<![CDATA[。。。。。。。]]>
</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>
...
<system.web>
<httpModules>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
</httpModules>
...
</system.web>
</configuration>
最后,在对应的ASPX文件中接收相应的参数,即可实现生成伪静态了。
有兴趣的朋友,亲自测试下吧,实现伪静态页面效果的那一刻,你会很有成就感的。