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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 任意角和弧度制[通俗易懂]

    任意角和弧度制[通俗易懂]1importmath23PI=math.pi45defshow():6print(7'小主,(* ̄︶ ̄),请选择你需要的功能:\n'8'\t\0

  • 初次了解ListNode,针对ListNode的理解「建议收藏」

    初次了解ListNode,针对ListNode的理解「建议收藏」关于ListNodepublicclassListNode{intval;ListNodenext;//链表指向的下一个值的指针ListNode(intx){val=x;}//这个方式赋值}我想到的几点事项定义链表ListNode时,链表的首个值不能为0,当首个参数为0时,代表着链表为空。 只需要定义一个List…

    2022年10月27日
  • linux常用命令菜鸟教程_化妆初学者必备工具

    linux常用命令菜鸟教程_化妆初学者必备工具一.学习Linux终端命令的原因1.Linux刚面世时并没有图形界面,所有的操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等2.在职场中,大量的服务器维护工作都是在远程通过SSH客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成在职场中,作为后端程序员,必须要或多或少的掌握一些Linux常用的终端命令。3.Linux发行版本的命令大概有200多个,但是常用的命令只有10多个而已二.linux常用指令ls命令…

  • jsonpath 判断是否包含_JSONPath介绍

    jsonpath 判断是否包含_JSONPath介绍/***@authoritguang*@create2017-12-1010:03**/@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublicclassJSONpathControllerTest{@Testpublicvoidtest(){Useruser=newUser(“itguang”,”123456″…

  • tf卡锁定怎么解锁_tf卡写保护解除办法

    tf卡锁定怎么解锁_tf卡写保护解除办法最近这段时间,开始使用TFS2010进行项目的源码管理,在使用过程中,发现了不些问题,由于开发人员的操作失误,经常导致了源码中的文件被锁定,而在开发人员的PC机上又不能把锁定的文件签入到TFS中,刚开始遇到这个问题时,想通过管理员帐号来“取消锁定”,但在“源代码管理器”中,管理员帐号也没有权限操作“取消锁定”。遇到这种文件被锁定的事,是相当的郁闷。郁闷归郁闷,问题还是得要解决,…

  • mysql触发器的作用及语法

    mysql触发器的作用及语法

    2021年11月29日

发表回复

您的电子邮箱地址不会被公开。

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