市面上有很多URL重写的例子,有第三方的,有直接配置的,五花八门,在使用的时候请一定要考虑性能,我也来搅搅这趟浑水咯
我理解中的URL重写是:
在web.config文件<system.web>下配置
<add url="~/index.asp" mappedUrl="~/default.aspx"/>
</urlMappings>
运行后在地址栏输入index.asp会跳转到default.aspx页面,这个我称之为URL重写,这种方式是不需要进行IIS配置的,缺点是无法进行正则表达式的验证,使用面就狭窄了许多
URL伪静态就是:
第一,引用URLRewriter.dll
第二,在web.config文件<configSections>节点下配置
进行URL规则的匹配接点声明
第三,<system.web> 下配置
进行过滤
第四,
<configuration>节点下,声明需要匹配URL的规则,例如:
这样就完成URL伪静态的工作,如果要发布到服务器上还需要配置IIS
IIS5.1:虚拟目录 == 配置 == 添加 == 可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 扩展名 : .* 限制为:POST,GET 检查文件是否存在不勾选
IIS6.0:主目录 == 配置 == 插入 == 可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll == 确认文件是否存在不勾选
第三方的和URL伪静态原理一样,推荐一个感觉不错的http://www.urlrewriter.cn/
使用URL伪静态对服务器的开销不小咯,另外的一个解决方案就是生成静态页,不过如果是平台型的网站数据量很大,建议还是用伪静态吧,毕竟十几万个页面生成下来,对磁盘的开销也不小了,并且容易造成冗余文件。