RewriteCond

百科

Rewri居延零王背滑门teCond指令定义一条规则条件反盐心眼九。在一条Rewrite来自Rule指令前面可能会有一条或多条RewriteC360百科ond指令,只有当自身的模式(pattern)匹配成功且这些条件也满足时规则才被应答求用于当前URL处理。

  • 外文名称 RewriteCond
  • 用途 指令定义一条规则条件
  • 语法  RewriteCond TestString
  • 性质 指令格式

使用

  Rewr来自iteCond TestString CondPattern [flags]

360百科  RewriteCond指令定义一条规则条件。在一条RewriteR身击纸已赶请ule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模板(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。

语法

  1、 话硫生明组货倍TestString是一个纯文本的字符串,除了包含普通的字符外,还可以包括下列的可扩展结构:

  1)$N:RewriteRule后向引用,其中(0 <= N <= 9) 。$N引用紧跟在RewriteCond后面的RewriteRule中模板中的括号中的模板在当前URL中匹配的数据。

  2)%N手州解她束否屋我发:RewriteCond后向引用,其中(1 <= N <= 9) 。%N引用最后一个RewriteCo农科志世nd的模板中的括号中承军器端迫见风来方采的模板在当前URL中匹配的数据。

  3)${mapn细轮法山毫投解稳ame:key|default}:Rewrit胡均陆eMap扩展。

  2、CondPattern是条件pattern, 即一个应用于当前实例TestString的正则表达式, 即TestString将会被计算然后与Co季表须面列上ndPattern匹配。作为一个标准的扩展正则式,CondPattern有以下补充:

  1)可以在模板串前增加一个!前缀,族脱绝洲若说亮以用表示不匹配模板。但并不是所有的test都可以加!前缀。

  2)算跳攻伯爱全展罗钢介CondPattern中可以使用以下特殊变量:

  '

  '>C适侵ondPattern' (倍身衣响叫兵采大于) 将condPattern当做一个普通字符串,将它和TestString进行比较,当TestStri根去剧白责减训诗财触ng 的字符大于CondPa形注的我较标李ttern为真。

  '=CondPattern' (等于) 将condPat教需tern当做一个普通字符串,将它和TestString进行比较,当TestString 与CondPattern完全相同时为真.如果CondPatte露委害苦脸食法短督土rn只是 "" (两这形独印个引号紧挨在一起) 此时需TestString 为空字符串方为真。

  '-d' (是否为目录) 将testString当做一个目录名,检查它是否存在以及是否是一个目录。

  '-f' (是否是regular file) 将testString当做一个文件名,检查它是否存在以及是否是一个regular文件。

  '-s' (是否为长度不为0的regular文件) 将testString当做一个文件名,检查它是否存在以及是否是一个长度大于0的regular文件。

  '-l' (是否为symbolic link) 将testString当作一个文件名,检查它是否存在以及是否是一个 symbolic link。

  '-F' (通过subrequest来检查某文件是否可访问) 检查TestString是否是一个合法的文件,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。

  '-U' (通过subrequest来检查某个URL是否存在) 检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。

  3、[flags]是第三个参数,多个标志之间用逗号分隔。

  1)'nocase|NC' (不区分大小写) 在扩展后的TestString和CondPattern中,比较时不区分文本的大小写。注意,这个标志对文件系统和subrequest检查没有影响.

  2)'ornext|OR' (建立与下一个条件的或的关系) 默认的情况下,二个条件之间是AND的关系,用这个标志将关系改为OR。例如: RewriteCond %{REMOTE_HOST} ^host1.* [OR] RewriteCond %{REMOTE_HOST} ^host2.* [OR]

  RewriteCond %{REMOTE_HOST} ^host3.* RewriteRule … 如果没有[OR]标志,需要写三个条件/规则.

标签:
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com