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)
上一篇 2022年6月14日 上午7:46
下一篇 2022年6月14日 上午7:46


相关推荐

  • 大数据分析技术方案

    大数据分析技术方案现在已经进入大数据时代,数据是无缝连接网络世界与物理世界的DNA。发现数据DNA、重组数据DNA是人类不断认识、探索、实践大数据的持续过程。大数据分析可以有效地促进营销,个性化医疗治病,帮助学生提高

    2022年8月3日
    7
  • win10安装vs2008失败1935_LTE切换失败的解决方案

    win10安装vs2008失败1935_LTE切换失败的解决方案今天刚升级了WIN10系统,重新安装VS2008(项目需要),但是点击安装程序后,出现此应用程序需要.NET3.5(包括.NET2.0和3.0),如图:如果你选择“下载并安装此功能。Windows将从Windows更新中获取所需的文件并完成安装”,那么你就耐心等吧,下载的速度奇慢。现在讲解一下一种无需在线下载,只需要有Win10ISO文件即可本地安装.NETFramework3.5的方…

    2025年9月23日
    8
  • 区位基尼系数_基尼系数直接计算法

    区位基尼系数_基尼系数直接计算法转载于:http://blog.sciencenet.cn/blog-3376208-1093109.html区域经济研究中,经常需要测度产业空间集中的程度,常用的指标有区位基尼系数(LocationalGiniCoefficient)、泰尔指数(TheilIndex)和EG指数等。这一期先讲区位基尼系数的计算方法及其实现函数,后几期再陆续介绍泰尔指数和EG指数。用Excel算区位基尼系数,尽管也可实现,但非常笨拙,而且可重复性差。然而,其计算方法是非常简单的,用R语言写一个函数来实现之,犹如杀

    2022年10月13日
    3
  • hdu1524博弈SG

    hdu1524博弈SG

    2021年8月25日
    62
  • Windows&Linux双系统安装流程

    Windows&Linux双系统安装流程注意事项:安装Windows&Linux双系统,最好先安装windows系统,否则可能会出现grub引导覆盖的问题。Window10系统安装1.制作启动盘(优启通链接)https://www.itsk.com/forum.php?mod=viewthread&tid=397875注:U盘尽量用品牌优盘,启动盘软件一定要选择好不然无法识别。优启通、优碟通、大白菜、老毛桃…

    2022年6月25日
    62
  • django修改数据_django-vue-admin

    django修改数据_django-vue-admin前言在ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。添加一个模型到数据库中:添加模型到数据库中。首先需要创建一

    2022年7月28日
    4

发表回复

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

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