RewriteCond 重写规则执行条件

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

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

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://www.cnblogs.com/maweidream/archive/2009/06/29/1513369.html

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机修改用户名密码,怎么修改电脑用户名呢_电脑的登录名和密码在哪里

    计算机修改用户名密码,怎么修改电脑用户名呢_电脑的登录名和密码在哪里曲谱自学网今天精心准备的是《怎么修改电脑用户名》,下面是详解!如何改计算机用户名(administrator)如何改计算机用户名(administrator)…如何改计算机用户名(administrator)1、按“win+R”打开运行,在运行输入框里面输入“gpedit.msc”,如下图所示:2、进去本地组策略编辑器之后,点击“计算机配置-windows设置-安全设置-本地策略-安全选项”,…

    2022年10月14日
    3
  • 3月第二周回顾:思科牵手IBM Oracle挑战SAP

    3月第二周回顾:思科牵手IBM Oracle挑战SAP

    2021年7月24日
    57
  • SpringCloud版本介绍[通俗易懂]

    SpringCloud版本介绍[通俗易懂]SpringCloud项目目前是快速迭代期,版本变化快。大版本版本号规则SpringCloud并没有熟悉的数字版本号,而是对应一个开发代号。Cloud代号 Boot版本(train) Boot版本(tested) lifecycle Angle 1.2.x incompatiblewith1.3 EOLinJuly2017 …

    2022年5月7日
    157
  • java webservice实现_JAVA WebService的实现方式

    java webservice实现_JAVA WebService的实现方式WebService的实现方式:1.使用javajdkweb服务API实现2.使用CXF结合Spring一、使用JDKweb服务API方式①创建一个接口,使用@WebService()注解来指明该Java接口为WebService服务的接口②创建实现接口的实现类,同样使用@WebService(endpointInterface指明接入点接口)注解来指明该Java类为为WebServ…

    2022年7月13日
    17
  • 从单片机到ARM Linux驱动——Linux驱动入门篇

    从单片机到ARM Linux驱动——Linux驱动入门篇大一到大二这段时间里学习过单片机的相关知识,对单片机有一定的认识和了解。如果要深究其原理可能还差了一些火候。知道如何编写程序来点量一个LED灯,改一改官方提供的例程来实现一些功能做一些小东西,对IIC、SPI底层的通信协议有一定的了解,但是学着学着逐渐觉得单片机我也就只能改改代码了(当然有的代码也不一定能改出来)。对于我这种以后只想搬砖的码农来说已经差不多了(仅仅是个人观点),…

    2022年7月14日
    16
  • BN层和Dropout层「建议收藏」

    BN层和Dropout层「建议收藏」原理batch的训练方法:按照batch来更新梯度,减少了梯度下降时的随机性;与遍历整个数据集相比,减少计算量。步骤:求batch均值、batch方差对每个元素进行归一化尺度缩放和偏移(变换回数据原始分布,减少)思想参数用法BN层放在卷积层后,用于重新调整数据分布…

    2022年9月25日
    1

发表回复

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

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