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

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

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

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


相关推荐

  • Javascript的DOM操作

    Javascript的DOM操作

    2021年11月17日
    60
  • logback-spring.xml配置文件(最佳实践)

    logback-spring.xml配置文件(最佳实践)logback-spring.xml配置文件&amp;amp;amp;lt;?xmlversion=&amp;amp;quot;1.0&amp;amp;quot;encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;amp;gt;&amp;amp;amp;lt;!–日志级别从低到高分为TRACE&amp;amp;amp;lt;DEBUG&amp;amp;amp;l

    2025年6月30日
    3
  • pycharm怎么关闭科学模式_pycharm关闭科学模式

    pycharm怎么关闭科学模式_pycharm关闭科学模式PyCharm在2017.3版本之后加入了ScientificMode,在科学计算时,可以方便的追踪变量变化等。使用NumPy的时候,系统会提示usescientificmode,但进去后就运行程序的在控制台中,很麻烦,想改回来的话按下面步骤取反即可.有时打开了scientificmode时,但文件中引入了numpy等科学计算包时并没有被自动识别,以scientific…

    2022年8月27日
    3
  • 直接学 Vue 3 吧 —— 对话 Vue.js 作者尤雨溪[通俗易懂]

    直接学 Vue 3 吧 —— 对话 Vue.js 作者尤雨溪[通俗易懂]《程序员》于2000年创刊,其理念为技术改变世界,创新驱动中国。2021年,《程序员》2.0全新起航,首期以「开发者的黄金十年」为主题,以音视频、图文专栏等丰富的多媒体形式为载体,立足当下,放眼未来,为读者带来全方位的技术和产业解读。本文为《程序员》2.0第一期内容,在UNIX开发者BrianW.Kernighan之后,我们采访到Vue.js的作者尤雨溪,与其共谈精彩程序人生、共论顶级开源项目的成功之道。从复杂的jQuery插件化开发到模块化及组件化,现代前端技术在迭代.

    2022年4月29日
    100
  • 疫后本地生活踏入拐点,全面升级的饿了么助力身边经济

    疫后本地生活踏入拐点,全面升级的饿了么助力身边经济7月10日饿了么宣布全面升级,从餐饮外卖平台转变为解决用户身边一切即时需求的生活服务平台,并将在未来大力布局“身边经济”,打造应有尽有的生活圈。眼下,整个经济正在迎来疫情后的反弹复苏,以餐饮、生鲜、零售为代表的消费行业加速反弹,饿了么在此时宣布全面升级,可谓顺势而为,在笔者看来,此次全面升级,有两大看点。在后疫情时代,饿了么从餐饮外卖平台转型同城生活服务,也将对整个本地生活服务会产生深刻的影响。看点1:饿了么为什么在此时宣布全面升级?在零售的战场上,时机和火候往往决定一切。饿了么此次..

    2022年6月22日
    51
  • 视频标清、高清、全高清的分类分辨率码率帧率参考(附图)

    视频标清、高清、全高清的分类分辨率码率帧率参考(附图)视频标清、高清、全高清的分类分辨率码率帧率参考(附图)视频标清、高清、全高清的分类分辨率码率帧率参考(附图)

    2022年5月6日
    176

发表回复

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

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