现在的位置: 首页 > web前端 > 正文

rewritecond的使用设置

2020年07月20日 web前端 ⁄ 共 1200字 ⁄ 字号 评论关闭

  RewriteCond指令定义一条规则条件。在一条RewriteRule指令前面可能会有一条或多条RewriteCond指令,只有当自身的模式(pattern)匹配成功且这些条件也满足时规则才被应用于当前URL处理。


  RewriteCond使用


  RewriteCondTestStringCondPattern[flags]


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


  RewriteCond语法


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


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


  2)%N:RewriteCond后向引用,其中(1<=N<=9)。%N引用最后一个RewriteCond的模板中的括号中的模板在当前URL中匹配的数据。


  3)${mapname:key|default}:RewriteMap扩展。


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


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


  2)CondPattern中可以使用以下特殊变量:


  '


  '>CondPattern’(大于)将condPattern当做一个普通字符串,将它和TestString进行比较,当TestString的字符大于CondPattern为真。


  ‘=CondPattern’(等于)将condPattern当做一个普通字符串,将它和TestString进行比较,当TestString与CondPattern完全相同时为真.如果CondPattern只是“”(两个引号紧挨在一起)此时需TestString为空字符串方为真。


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


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


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


  总之,RewriteCond给大家简单的介绍了一些,希望大家多看看。

抱歉!评论已关闭.