目前很多网站使用了Url重写的技术,好处可以使URL变短,最主要的就是静态页面,有利于SEO,方便搜索引擎抓取,典型的例子就是我们公司的网站http://www.chiefvalue.com/,后缀都从Aspx重写成CV了,这个后缀就个性化了,同时能起一个宣传的作用。
在这里就不介绍UrlRewrite的实现了,园子里有很多文章,其中老赵的系列介绍得最详细,相关文章如下:
重提URL Rewrite(2):使用已有组件进行URL Rewrite
重提URL Rewrite(3):在URL Rewrite后保持PostBack地址
重提URL Rewrite(4):不同级别URL Rewrite的一些细节与特点
我们网站的实现方式和老赵文中提到的类似,生成Dll文件后加入IIS中,
同时在Documents中添加新的后缀配置
添加完成后,必须检查这个Dll是否可用,也就是Status是否在运行状态,由于我们是用C++写的,在一台服务器上部署时怎么也不能运行起来,包括安装了C++ Runtime,最后使用最傻的办法,把Dll文件放到Microsoft.net文件夹下才运行起来。这个是一个注意点。
配置好后,接下来就是测试是否把网站上所有的页面都重写成功了,由于UrlRewrite里是自定义了规则,同时使用正则表达式来转换指定的参数,比如?可以转换为_-_,=转换为--,但是网站带参数的页面至少也是几万,甚至几百万个,不可能所有URL都满足规则,因此需要进行一番测试,具体步骤如下:
1、前面提到Web上有几万几十万的页面,如果一个个测试手工肯定是不行的,时间上就不允许,那么如何减少操作呢,首先必须做一个列表,那就是列出所有后缀为aspx的页面,这个是有一定数量的,大概最多也就几百个,可以列出后保存在Excel中,首先检查这些页面是否重写成功,即使手工测试也能做到,当然推荐使用自动化测试。
2、对整个网站进行链接测试,这里推荐以前提到的工具Xenu Link Sleuth,具体使用见链接测试工具小汇一文,通过返回的状态再次检查Cancel或Timeout的页面。
3、第二步做完后并不是万无一失了,因为还有遗漏的死角,例如,某个页面是通过点击Button弹出的,某个页面的文字描述中带有链接,这些需要专门处理,可能是正则表达式无法检测到的。
4、到这里,基本上就可以完成使用UrlRewrite后的测试,当然如果大家有其他的经验希望能分享一下。
虽然这个项目在06年就上线了,写得有点迟,但还是希望对有UrlRewrite测试需要的人提供一些参考。