RewriteCond 详解「建议收藏」

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

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

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
 
更多参考:

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

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

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


相关推荐

  • ThinkServer RS260安装CentOS操作实录

    ThinkServer RS260安装CentOS操作实录

    2022年4月2日
    120
  • 【大数据应用开发】大数据的概念[通俗易懂]

    【大数据应用开发】大数据的概念[通俗易懂]一.大数据的概念维基百科定义:大数据是指利用常用软件工具捕获,管理和处理数据所耗时间超过可容忍时间的数据集。二.大数据4V特征Volume:体量巨大Velocity:处理速度快Variety:类型繁多(结构化,半结构化,非结构化)Value:价值密度低三.大数据主流技术数据采集预处理flume可以进行流式日志数据的收集sqoop可以交互关系型数据库,进行导入导…

    2022年6月4日
    42
  • Linux 安装tomcat 部署war包项目

    Linux 安装tomcat 部署war包项目准备工作:jdk-8u161-linux-x64.tar.gz链接:https://pan.baidu.com/s/1zQGL_cfN5jFWshZkAJOkNw密码:0u7dapache-tomcat-9.0.20.zip链接:https://pan.baidu.com/s/1Nf_qdmUVlQ0Cz8BOoQg2rA密码:bh9f以及你的war包…

    2022年6月11日
    126
  • Windows系统查看CUDA版本号

    Windows系统查看CUDA版本号问题:之前安装了CUDA,但不知道是哪个版本了?也不知道安装到哪了?解决方法:1.打开控制面板在按住Win键的情况下,按R键,呼唤运行栏。在运行框中输入control,如下图所示:2.进入NVIDIA控制面板3.查看系统信息验证:找到之前的安装目录确定了确实是10.1版本…

    2022年5月28日
    37
  • 数据分析 — 五力模型 VS PEST(分析模型)VS SWOT分析法[通俗易懂]

    数据分析 — 五力模型 VS PEST(分析模型)VS SWOT分析法[通俗易懂]一、五力模型:1.供应商的讨价还价能力2.购买者的讨价还价能力3.新进入者的威胁4.替代品的威胁5.行业内现有竞争者的竞争二:PEST模型政治环境(PoliticalFactors)经济环境(EconomicFactors)社会环境(SocialandculturalFactors)技术环境(TechnologicalFactors)三、SWOT模型…

    2022年6月4日
    35
  • Laravel框架_php laravel框架

    Laravel框架_php laravel框架laravel框架一、laravel简介laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全;https://www.jianshu.com/p/206592c78113二、简单介绍1、laravel是基于mvc模式的php框架,m——模型层,v——视图层,c——控制器层;以下为laravel框架的目录文件,框出来的文件目录将在后续中用到:2、什么是MV…

    2025年8月23日
    2

发表回复

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

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