ISAPI_Rewrite试用--让动态网页看起来静态化

时间:2020-12-22 20:07:29

54powerman@163.com
http://54powerman.blog.sohu.com

1. 从http://www.isapirewrite.cn下载ISAPI_Rewrite Lite版,安装在硬盘上,如C:/Program Files/Helicon/ISAPI_Rewrite;
2. 打开IIS管理,选择要配置的主机,转到“ISAPI筛选器”选项卡。并添加一个筛选器,名称任意,执行文件为“C:/Program Files/Helicon/ISAPI_Rewrite/ISAPI_Rewrite.dll”;
3. 修改C:/Program Files/Helicon/ISAPI_Rewrite/httpd.ini文件,添加相应的过滤规则,例如:
我要将输入的网址localhost/54powerman显示localhost/blog.asp?id=54powerman,在配置文件中输入如下配置信息。
RewriteRule ^(/)([a-z0-9/-/_]+)$ /blog.asp?id=$2 [I,O]
4. 运行iisreset,重启IIS;这一步很重要,每次修改httpd.ini后都要重启以加载配置。
5. 测试,在站点首页目录添加新的blog.asp作为测试页面,输入代码:
<%
Response.Write "Hello," & Request.QueryString("id") & ".This is your blog."
%>
6. 在浏览器地址栏中输入http://localhost/54powerman,地址栏没有变化,但是网页中显示了如下内容:
Hello,54powerman.This is your blog.
7. 测试分析:http://localhost/54powerman这个url并不存在真实的文件,但是从用户看来好像存在真实的文件一样。
8. 试用后的思考:
8.1 如果RewriteRule ^(/soft_)([a-z0-9/-/_]+)(.html)$ /down.asp?softid=$2 [I,O],结果如何?
提示:输入http://localhost/soft_159746.html,结果为/down.asp?softid=159746的内容,这正好是一些下载站的方式。
8.2 如果RewriteRule ^(/)([a-z0-9/-/_]+)(/)([a-z0-9/-/_/.]+)$ /soft.asp?id1=$2&id2=$4 [I,O],结果如何?
提示:输入http://localhost/54powerman/photo.html,结果为id1=54powerman;id2=photo.html,这样可以让54powerman看起来像是一个虚拟目录
8.3 再复杂一些,如果RewriteRule ^(/)([a-z0-9/-/_/.//]+)$ /soft.asp?id=$2 [I,O]呢?
提示:http://localhost/54powerman/myFolder/photos/list.asp,那么soft.asp中就会获得到id1=54powerman/myFolder/photos/list.asp,在soft.asp中来拆分各个参数,是不是就可以模拟更复杂的虚拟目录结构呢。
如下的soft.asp:
query = Request("id")
Response.Write "原始字符串:&nbsp;&nbsp;" & query &"<p>拆分后的字符串:<p>"
params = Split(query,"/")
For i=0 To UBound(params)
 Response.Write 1+i & "级目录&nbsp;&nbsp;" & params(i) &"<p>"
Next
显示如下:
原始字符串:  54powerman/myFolder/photos/list.asp
拆分后的字符串:

1级目录  54powerman

2级目录  myFolder

3级目录  photos

4级目录  list.asp

9. 更多配置技巧,请参照C:/Program Files/Helicon/ISAPI_Rewrite/ISAPI_Rewrite.dll/documentation.htm