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/130662.html原文链接:https://javaforall.net

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


相关推荐

  • IDEA 注释详解[通俗易懂]

    IDEA 注释详解[通俗易懂]IDEA注释及模板配置1.行注释ctrl+/2.块注释(多行),取消注释时不用选中多行,只需要在开始符号/*那里执行ctrl+shift+/3.方法和类注释/**+回车方法会直接返回带参数的注释,如下,但是类上信息为空/****@paramuser*/4.配置类和方法的注释模板ctrl+alt+…

    2022年9月28日
    2
  • cubieboard 用户 密码 root「建议收藏」

    cubieboard 用户 密码 root「建议收藏」因为不是超级用户root,所以你进行任何操作都要使用sudo在命令的前面。启用root的方法:sudopasswdroot输入新的root密码2次,确认后。就激活了root账户,就可以使用root登录,以后就具备了最高权限。先解除root锁定,为root用户设置密码#sudopasswdPassword:EnternewUNIXpasswo

    2022年7月22日
    15
  • fastdfs 上传文件(nginx文件上传服务器)

    一、FastDFS介绍FastDFS开源地址:https://github.com/happyfish100参考:分布式文件系统FastDFS设计原理参考:FastDFS分布式文件系统1.简介FastDFS是一个开源的高性能分布式文件系统(DFS)。它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(…

    2022年4月16日
    140
  • fmp helper下载_sftp下载

    fmp helper下载_sftp下载1.下载安装https://teleport-pro.en.softonic.com/或者其他激活成功教程网站2.运行扒站打开软件后File->NewProjectWizard里面可以选择许多TP能做的事情,比如创建一个网站的副本,根据关键词查询网站等。下载网站选择第一个。输入想要下载的网址,和对应的下载深度。选择仅下载文本或是全部。其次如果该网站需要登陆的话需要输入登陆网…

    2025年10月8日
    3
  • mysql数据库置疑_SQL数据库置疑 823 824 错误修复 无法附加处理

    mysql数据库置疑_SQL数据库置疑 823 824 错误修复 无法附加处理SQL数据库为什么会置疑?这个原因有很多,例如阵列崩溃导致数据库文件页面损坏,病毒破坏,分区损坏。断电非法关机等因素怎样防止数据库置疑?远程备份或者备份到本机另一块硬盘是最佳方式,平时要多注意预防病毒文件系统检查(chkdsk检测分区看看有无坏道或者文件系统问题)UPS电源检测没事的时候就行DBCCCHECKDB检测再小的故障都要立即解决,数据库不可以带故障运行。出现故障恢复方案?…

    2022年8月20日
    6
  • 20191124_射雕侠侣和天龙八部小说分类

    20191124_射雕侠侣和天龙八部小说分类关键字提取importpandasaspd#载入语料raw=pd.read_csv(“data/附件2_金庸-射雕英雄传txt精校版.txt”,names=[‘txt’],sep=’aaa’,encoding=”utf-8″,engine=’python’)#章节判断用变量预处理defm_head(tmpstr):…

    2022年7月12日
    24

发表回复

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

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