ISAPI有好多种版本,我用的是适合32位机的免费版Lite,这个只能面向本机所有的站点,而不能单独针对某一个站点进行设置,功能有局限,所以它的规则写法和说明上的有点不同:在规则的前面必须加上虚拟目录名,也就是从
http://localhost/ 后面开始是完整的路径,举个例子来解释:
我有一个路径:
http://localhost/kkcms/te/11hr1/rg/3.html 它由localhost(域名),kkcms(虚拟目录名),te(文件名),11hr1/rg/3(参数),.html(结束符)这几个部分组成。有一点要注意,kkcms在域名指向后是需要删除的。
这个路径通过以下表达式来处理:
RewriteRule /kkcms/te/([0-9,a-z]*)/([0-9,a-z]*)/([0-9,a-z]*)\.html /kkcms/te.aspx\?p01=$1&p02=$2&p03=$3 表达式可以用ISAPI_Rewrite自带的表达式检测工具来调试和生成。
路径
http://localhost/kkcms/te/11hr1/rg/3.html 事实上与
http://localhost/kkcms/te.aspx?p01=11hr1&p02=rg&p03=3 完全一致,而且程序也会这么认为。
C#程序代码:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <%=Request["p01"].ToString()%><br /> <%=Request["p02"].ToString()%><br /> <%=Request["p03"].ToString()%><br /> </body> </html> 将外界参数全部用ISAPI_Rewrite静态化,浏览者和搜索引擎都不会认为它是动态页面。这当然是只是表面的,从服务器的角度来说,这根本没有做缓存。缓存技术思路将在后面的文章里说明。
共1页
|
来源:
| 作者:
killuakun
| 发表时间:
2006-9-30 12:32:00
|
|
|