-> 配置文件SmartRewrite.ini: SmartRewrite通过WEB服务扩展完成URL请求的重定向和网址映射。在SmartRewrite.ini文件中,对每个需处理的站点均要按要求构建正确的url重写规则,当客户端发出http请求时,SmartRewrite根据对应规则将URL与正则表达式匹配,并对网址做相应的转换后将URL请求发送给IIS处理,完成网址的重定向。 以下为 SmartRewrite.ini的配置示例(以域名url.com为例): | RewriteCond Domain:url.com //定义一个域 url.com RewriteRule ^(www.url.com/)$ / //定义规则,用户请求http://www.url.com,访问的也是http://www.url.com,这一句必须有,且应放在最前面。 RewriteRule ^(www.url.com/index.html)$ / //定义规则,与上一句相同,请求为http://www.url.com/index.html,访问的是http://www.url.com RewriteRule ^({[A-Za-z0-9]+}.url.com/)$ /user/index.asp?uid=$0 //定义规则,中间一段为正则表达式构建的静态网址,最后一段为实际访问的动态网址。按上述规则,如用户的请求为http://best.url.com,实际访问的是http://www.url.com/user/index.asp?uid=best RewriteRule ^({[A-Za-z0-9]+}.url.com/index.html)$ /user/index.asp?uid=$0 //定义规则,同上 RewriteRule ^(www.{[A-Za-z0-9]+}.url.com/)$ /info/index.asp?sort=$0 //定义规则, RewriteRule /r{[0-9]+}/{[0-9]+}/topic/{[0-9]+}.html /detail.asp?id=$2 //每个匹配组由大括号{}引起来,组号从0组开始,后面的$2表示id取第二组的值。 如http://www.aaa.com/r01/11/topic/1234.html,实际访问的则是http://www.aaa.com/detail.asp?id=1234。第0和1组在此仅从静态网址上体现一种虚拟目录结构。如不需该值可直接取$2的值即可。 RewriteRule /topic/{[0-9]+}.html /detail.asp?id=$0 ......
RewriteCond Host:www.bbb.com //定义主机www.bbb.com RewriteRule /{[0-9]+}/{[0-9]+}/index.html /list.asp?code1=$0&code2=$1 。。。。。。 |
-> 注意的几个问题: 1. 设计时建立的链接应相对于根,而不是相对于文档,如:/images/123.pic,否则有些链接可能不正确。 2. 规则修改后必须重新启动IIS。 3. 在ABC_Rewrite.ini配置中可配置多个主机,IIS中需对所有使用ABC_Rewrite的相关站点配置筛选器,配置文件中两条规则之间不能加注释。 4. 匹配规则的格式为: RewriteRule 匹配表达式格式化表达式 注:中间有空格 5. 匹配组用大括号{}分隔,组号从0开始,因此取值次序 从$0-$N,当然可以直接取某一组的值,如上例中的id=$2。 6. 每个主机的相关配置中较长的规则应放在该节的前面。 -> 试用版和正式版的区别(非常重要): 1. 功能上没有区别,试用版最大处理请求数为200,超过重写组件将失去作用,除非IIS重启。 2. 试用版和正式版均支持多个虚拟主机,支持多参数传递。 |
转载于:https://www.cnblogs.com/gaoyoubo/archive/2010/04/07/1965040.html