IIRF(Ionic's Isapi Rewrite Filt er)入门,在IIS上重写Url(2)

作者:小春 来源:zc's blogs 时间:2007-09-23 12:16:00 


RewriteCond
RewriteCond <test-string> <pattern> [<modifier flag[,...]>]
类似于条件判断,并且允许多个条件,OR,AND。只有当RewriteCond的Server Variable 匹配所指定的正则表达,RewriteRule才会执行。比如:
RewriteCond %{REMOTE_ADDR} ^(127.0.0.1)$
RewriteRule ^/(.*).aspx$ /$1.aspx
如果我们访问网站的地址的IP来源于127.0.0.1,那么,允许 RewriteRule ^/(.*).aspx$ /$1.aspx
RewriteCond %{REMOTE_ADDR} ^(127.0.0.1)$ [OR]
RewriteCond %{REMOTE_ADDR} ^(192.168.0.10)$
RewriteRule ^/(.*).aspx$ /$1.aspx
添加了OR来多个条件判断
RewriteCond %{REMOTE_ADDR}   ^(?!127.0.0.1)([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})(.*)$
RewriteRule  ^/(?!redirected.htm)(.*)$      /redirected.htm
Modifier flags有二个值
I=模糊匹配
OR=逻辑判断
从IIRF的RewriteCond的功能上来说,确实很灵活,不知道跟IIS7的重写怎么样,嘻嘻。还没瞧见过呢*^_&。另外。RewriteCond的[Patterns]可以带下面几个参数
 -d
  Treats the TestString as a pathname and tests if it exists,
  and is a directory.
TestString是一个路径名称,并且存在这个路径
 -f
  Treats the TestString as a pathname and tests if it exists and
  is a regular file.
TestString是一个路径名称,并且是一个存在的文件
  -s
  Treats the TestString as a pathname and tests if it exists and
  is a regular file with size greater than zero.
TestString 是一个路径名称,并且存在文件超过0字节
如文档所使用的例子
(1)RewriteCond %{HTTP_URL}             (/|\.htm|\.php|\.html|/[^.]*)$   [I] )
(2)RewriteCond %{REQUEST_FILENAME}     !-f
(3)RewriteCond %{REQUEST_FILENAME}     !-d                                 
(4)RewriteRule ^.*$                    /index.aspx                      [U,L]
(1)如果URL是以htm,php,html(模糊匹配),
(2)URL不是存在文件
(3)URL不是请求的路径
(4)将所有请求跳转到index.aspx,保存原始的URL,之后不在对此进行匹配
在如
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla.*
RewriteRule  ^/$                 /homepage.max.html  [L]
IIRF其它配置属性
IterationLimit {integer}从指定的integer后开始匹配RewriteRule组。如果超出RewriteRule个数,默认将会从第8个开始。
MaxMatchCount {integer} RewriteRule组的总个数。
RewriteLog <filename stub> 日志路径
RewriteLogLevel {0,1,2,3,4,5} 日志的等级
一个常见问题
在刚安装IIRF之后就测试一下ASP.NET下面的URL,发现还是跟以前ASP.NET重写URL有一样的问题:无法改写Form下面的action的路径,而我们这时使用Request.RawUrl获取原始的URL是为空的。也许你开始注意到了我上面写过的RewriteRule的modifiers选项[U]。我们可以通过将原始的URL保存到服务器变量中。然后通过Request.ServerVariables[name]来获取。然后重写action的值就可以了。

后记:
IIRF已经分析的差不多了。从上面可以看出,功能确实很强大,而且配置也很灵活。发现自己也慢慢喜欢上它了。嘿嘿。重要的是。它是免费,开源的。
为自己小小的鼓掌一下。嘻嘻。写这篇随笔真不容易。希望能给大家一个帮助。另外,由于自己水平有限,上面也许有描述错误的地方或不清楚的地方还请指出,有则改之,无则加勉:)
最后,祝大家2007年的第一个周未愉快*^_^*
[2007-09-01]
http://zhangsichu.com/blogview.asp?Content_Id=82
这里已经有人实现了二级域名的重写,大家可以去看看.感谢 tombom 提供的信息.
IIRF网站:http://cheeso.members.winisp.net/IIRF.aspx

标签:iirf,iis,url
0
投稿

猜你喜欢

  • sql查询点滴记录

    2012-01-05 19:07:49
  • Oracle 存储过程总结(一、基本应用)

    2009-07-07 10:21:00
  • SQL Server2000的安全策略

    2007-08-06 17:14:00
  • MySQL数据库生产环境的维护工作总结的经验

    2011-12-01 10:20:52
  • Access创建一个简单MIS多媒体管理系统

    2008-10-13 12:31:00
  • 对跨多个表格的数据组合时需要用到的SQL

    2009-01-06 11:18:00
  • 两大步骤教您开启MySQL 数据库远程登陆帐号

    2010-09-30 16:42:00
  • asp 网站静态化函数代码html

    2011-03-16 11:21:00
  • JavaScript for: i++ vs i–

    2010-06-24 21:42:00
  • 窥探jQuery——面向JavaScript程序员

    2008-06-17 14:35:00
  • 用Dreamweaver MX巧妙格式化表格

    2008-03-18 16:39:00
  • SQL和Oracle对数据库事务处理的差异性

    2009-10-14 09:43:00
  • 监测站点使用多少session和application的asp程序

    2007-09-12 19:40:00
  • 让Dreamweaver MX显示最舒服的编程环境

    2008-02-25 14:01:00
  • sql2005与sql200数据导入导出

    2009-03-13 13:16:00
  • 用ASP+CSS实现随机背景

    2007-09-26 12:33:00
  • 如何实现SQL Server的分页显示?

    2010-05-18 18:36:00
  • 如何将 Access 的 Memo 型态字段汇入到 SQL2005 的 nvarchar 型态字段

    2008-12-26 18:13:00
  • 带农历及节日的js日历源码

    2010-08-01 17:38:00
  • 清除SQL被注入恶意病毒代码的语句

    2010-03-03 09:59:00
  • asp之家 网络编程 m.aspxhome.com