ABC_Rewrite是一种IIS下的URL重写组件,基于正则表达式,可方便的重写发送到IIS的URL请求,将动态网址转变为静态网址,实现网页重定向,建立站点的虚拟目录和文件结构,使页面对搜索引擎更友好,更利于搜索引擎收录。ABC_Rewrite目前有两个版本,分别在IIS 5.0和IIS 6.0下运行,支持asp、php、jsp以及.net等。支持虚拟主机,支持多参数传递。
ABC_Rewrite的作用:
1、实现网页链接的静态化。某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在用户搜索到。用UrlRewrite技术你可以把 http://server/news.asp?id=111变成http://server/news/111.htm这样他们就会被搜索引擎收录了。google虽然可以抓取动态页面,但是google对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。
2、提高网站的移植性。每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用url重写技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。
3、提高站点的安全性。通过构建正则表达式,将网页实地址映射为虚拟地址,建立站点的虚拟目录和文件结构,实现站点重要数据和文件的隐藏,提高站点的安全性。如,可以把http://server/news.asp?id=111变成http://server/news/topic/111.html这样,在访问者看来存在/news/topic这个目录,但对IIS来说,物理上是不存在该目录的。
4、满足美感的要求。对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。如: http://server/news.asp?channel=3&id=111的网页地址用url重写技术,可以变成http://server/news/3/111.htm。
ABC_Rewrite的典型配置(ABC_Rewrite.ini):
RewriteCond Host:[暂不可见]
//定义主机[暂不可见]
RewriteRule /{[0-9]+}/{[0-9]+}/index.html /list.asp?code1=$0&code2=$1
//定义规则,中间一段为正则表达式构建的静态网址,最后一段为实际访问的动态网址。按上述规则,如用户输入访问[暂不可见]/01/04/index.html,实际访问的是[暂不可见]/list.asp?code1=01&code2=04
RewriteRule /r{[0-9]+}/{[0-9]+}/topic/{[0-9]+}.html /detail.asp?id=$2
//每个匹配组由大括号{}引起来,组号从0组开始,后面的$2表示id取第二组的值。
如[暂不可见]/r01/11/topic/1234.html,实际访问的则是[暂不可见]/detail.asp?id=1234。第0和1组在此仅从静态网址上体现一种虚拟目录结构。如不需该值可直接取$2的值即可。 |