Apache Rewrite 详解RewriteCond「建议收藏」

Apache Rewrite 详解RewriteCond「建议收藏」RewriteCond重写规则执行条件语法:RewriteCondTestStringCondPattern生效域:serverconfig,virtualhost,directory,.htaccess特别的上面的TestString,可提供反向引用.引用模式为:%N其中N为(0<=N<=9),引用当前若干Rewrit…

大家好,又见面了,我是你们的朋友全栈君。

RewriteCond 重写规则执行条件
语法: RewriteCond TestString CondPattern
生效域: server config, virtual host, directory, .htaccess
特别的上面的 TestString, 可提供反向引用. 引用模式为: %N 其中N为(0 <= N <=9), 引用当前若干RewriteCond条件中最后符合的条件中的分组成分, 也就是括号里的内容.不过用到的不多. 反向应用多在RewriteRule里常用.
RewriteCond 语法中的 TestStrng 为要被检查的内容, CondPattern 是进行匹配的规则, 它是一个兼容Perl风格的正则表达式和一些其他的特有字符属性. 这里介绍一下.
第一个:
! (感叹号) 表示否的意思. 比如一个条件: 判断访问此页面的上一页URL是否包含 sex 字符的话可以用这样: RewriteCond %{HTTP_REFERER} !(sex)

第二个:
< 就是小于的意思, TestString < CondPattern.

第三个:
> 就是大于于的意思, TestString < CondPattern.

第四个:
= 相等的意思. <, >, = 三个和通常程序语言使用的 <, >, = 功能类似.

第五个:
-d 是否是一个目录. 判断TestString是否不是一个目录可以这样: !-d

第六个:
-f 是否是一个文件. 判断TestString是否不是一个文件可以这样: !-f

第七个:
-s 是否是一个正常的有大小的文件. 判断TestString是否不是一个正常的有大小的文件可以这样: !-s

第八个:
-l 是否是一个快捷方式文件. 判断TestString是否不是一个快捷方式文件可以这样: !-l

第九个:
-x 是否是一个文件并且又执行权限. 判断TestString是否不是一个文件并且又执行权限可以这样: !-x

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

第十一个:
-U 检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能.
另外: RewriteCond 指令后面可带 Flag, 现在只要2个可用, 一个是 NC|nocase, 不区分大小写的意思. 一个是 OR|ornext 表示连接下一个条件的意思.
RewriteCond 实际需要使用情况比如要判断一个条件成真的时候才执行相关的重写操作. 紧接着它下面的 RewriteRule 总是在RewriteCond 条件判断为真的时候才被执行.
看下面的一个例子:
#开启服务器重写模式

RewriteEngine on

#来自 www.test.cn 的连接访问本站时都只能访问 test.php 这页.

RewriteCond %{HTTP_REFERER} (www.test.cn)

RewriteRule (.*)$ test.php

#来自 www.test.com 的连接访问本站时都只能访问 newTest.php 这页.

RewriteCond %{HTTP_REFERER} (www.test.com)

RewriteRule (.*)$ newTest.php
OK, RewriteCond 就介绍到这里了. 其实很简单. 就想程序里的 if() 这样的效果. 下篇聊一下 RewriteRule

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131793.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月30日 上午9:00
下一篇 2022年4月30日 上午9:20


相关推荐

  • 一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据

    一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据Photo-RealisticSingleImageSuper-ResolutionUsingaGenerativeAdversarialNetwork

    2022年6月28日
    32
  • Cocos2d-x 集成openinstall(Android)

    Cocos2d-x 集成openinstall(Android)

    2022年3月13日
    96
  • 通过QXDM锁BAND_不root怎么锁band

    通过QXDM锁BAND_不root怎么锁band1、通过QXDM锁频QXDM工具View->New->Common->NVBrowser:NV(NonVoliatile)参数就是保存在终端上的非易失参数,可以通过view中的NVBrowser来进行查看和修改。这些信息由厂家固化在终端内部,一般不允许用户修改。同时,可以通过NVBrowser对终端进行Offline(掉电重启)操作。其中06828LTEBCconfig可以配置终端支持的band信息,将该项的值读出来(默认读出来为十进制)转化为二进制,..

    2026年4月17日
    5
  • 数学建模13种常见方法

    数学建模13种常见方法下面来介绍一下数学建模大赛中常用的13中建模方法:1、层次分析法,简称AHP,是指将与决策总是有关的元素分解成目标、准则、方案等层次,在此基础之上进行定性和定量分析的决策方法。该方法是美国运筹学家匹茨堡大学教授萨蒂于20世纪70年代初,在为美国国防部研究"根据各个工业部门对国家福利的贡献大小而进行电力分配"课题时,应用网络系统理论和多目标综合评价方法,提出的一种层次权重决策分析方法。2、多…

    2026年3月3日
    4
  • win7下,令人头疼的 classpnp.sys (附带:安装系统时蓝屏;0x0000007b)。[通俗易懂]

    win7下,令人头疼的 classpnp.sys (附带:安装系统时蓝屏;0x0000007b)。[通俗易懂]前言:1.今天到单位,打开笔记本,发现启动后,程序报appcrash错误。于是重启,使用安全模式进入,发现启动中停在classpnp.sys上,然后程序就再也不往下走了。安全模式都进入不了系统,我还是第一次遇到!!万恶的win7。——————————————-

    2022年7月18日
    24
  • 流水线设计的方法和作用「建议收藏」

    流水线设计的方法和作用「建议收藏」流水线设计从某种程度上可以提高系统频率,因此常用于高速信号处理领域,如果某个信号可以分为若干步骤处理,而且整个数据处理过程是单项的,即没有反馈运算和迭代运算,前一个步骤的输出就是下一个步骤的输入,可以考虑流水线设计来提高系统的频率。如下图所示:典型的流水线设计是将原本一个时钟周期完成的较大的组合逻辑通过合理的切割后分由多个时钟周期来完成,这样一来该部分逻辑运行的时钟频率就会有明显的提升,尤其当她是…

    2022年4月19日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号