Apache通过RewriteCond设置ReWrite规则,可以在httpd.conf配置文件中直接设置rewrite规则,也可以根据需要在网站的.htaccess文件中设置rewrite规则。

RewriteCond 重写规则执行条件

语法:

[php]RewriteCond TestString CondPattern[/php]

生效域:

[php]server config(服务器全局), virtual host(虚拟主机), directory(目录), .htaccess[/php]

上面的 TestString, 可提供反向引用. 引用模式为: %N 其中N为(0 < = N <=9), 引用当前若干RewriteCond条件中最后符合的条件中的分组成分, 也就是括号里的内容.不过用到的不多. 反向应用多在RewriteRule里常用.

RewriteCond 语法中的 TestStrng 为要被检查的内容, CondPattern 是进行匹配的规则, 它是一个兼容Perl风格的正则表达式和一些其他的特有字符属性. 这里介绍一下.

[php]第一个: ! (感叹号) 表示否的意思. 比如一个条件: 判断访问此页面的上一页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完成的, 因此需要小心使用这个功能以降低服务器的性能.[/php]

另外RewriteCond 指令后面可带 Flag, 现在只要2个可用, 一个是 NC|nocase, 不区分大小写的意思. 一个是 OR|ornext 表示连接下一个条件的意思.

RewriteCond 实际需要使用情况比如要判断一个条件成真的时候才执行相关的重写操作. 紧接着它下面的 RewriteRule 总是在RewriteCond 条件判断为真的时候才被执行.

看下面的一个例子:

[php]#开启服务器重写模式

RewriteEngine on

#来自 www.opensoce.com 的连接访问本站时都只能访问 test.php 这页.

RewriteCond %{HTTP_REFERER} (a.opensoce.com)

RewriteRule (.*)$ test.php

#来自 www.opensoce.com 的连接访问本站时都只能访问 newTest.php 这页.

RewriteCond %{HTTP_REFERER} (b.opensoce.com)

RewriteRule (.*)$ newTest.php[/php]

RewriteCond其实很简单. 就像程序里的 if() 这样的效果.

php rewrite 规则,Apache RewriteCond ReWrite规则相关推荐

  1. php 伪静态规则,在线将Apache Rewrite Rules伪静态规则转换为Nginx Rewrite伪静态规则...

    一般php的开发者本地使用的都是使用apache服务器,使用伪静态的时候每次都需要转换成nginx rewrite规则,于是做了个在线将Apache htaccess Rewrite伪静态规则自动转换 ...

  2. Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结

    一. 简单实例介绍 一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置: 1)在httpd.conf文件 ...

  3. apache的rewrite规则无法加载问题

    apache的rewrite规则无法加载问题. <VirtualHost *:80> ServerAdmin k@5.com DocumentRoot /data/web/xxx Serv ...

  4. 浅析Apache重写规则中RewriteCond规则参数和 RewriteRule 规则参数

    一.RewriteCond规则参数 RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是Rewrit ...

  5. .htaccess 基础教程(四)Apache RewriteCond 规则参数

    Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制.此UR ...

  6. Apache中 RewriteRule 规则参数介绍

    一.Apache中 RewriteRule 规则参数介绍 Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量的子 ...

  7. 让Apache支持Rewrite静态页面重写的方法

    Apache下Rewrite静态页面重写的方法,需要的朋友可以参考下. 首先确定您使用的 Apache 版本,及是否加载了 mod_rewrite 模块. Apache 1.x 的用户请检查 conf ...

  8. [转] apache配置rewrite及.htaccess文件

    转载自: http://www.uh80.com/?p=654 apache配置rewrite及.htaccess文件 1.  首先确定您使用的 Apache 版本,及是否加载了 mod_Rewrit ...

  9. 【转】CentOs中Apache开启rewrite模块详解

    rewrite是apache环境的一个伪静态功能了,如果我们没有没让Apache开启rewrite功能,网站上所有的rewrite规则都不可使用. centos的配置文件放在: /etc/httpd/ ...

最新文章

  1. Java Web(11) Spring MVC 返回Json
  2. Android IJKPlayer缓冲区设置以及播放一段时间出错解决方案
  3. 【Java Web开发指南】Maven+MyBatis实现增删改查的Demo
  4. CV之Image Caption:Image Caption算法的相关论文、设计思路、关键步骤相关配图之详细攻略
  5. 块级元素与行级元素(内联元素)
  6. opencv python 多帧降噪算法_OpenCV-Python中用于视频跟踪的Meanshift和Camshift算法介绍...
  7. python入侵数据库数据库_一个简单的Python访问Mysql数据库例子
  8. 利用FSMT进行文件服务器迁移及整合
  9. 【重难点】【Java基础 07】变量类型、内部类、处理器指令优化
  10. Ubuntu设置静态IP/网关
  11. eclipse一些实用小技巧
  12. python基础笔记(六)_数据清洗及建模
  13. 2015年蓝桥杯A组C/C++ 第三题奇妙的数字
  14. 20个PCB快捷键操作,提升绘图效率
  15. PPC手机上用Skype打电话的方法
  16. 20款常用的商业智能(BI)工具分享(最新)
  17. [BZOJ1776] [Usaco2010 Hol]cowpol 奶牛政坛
  18. 电脑配件 - 机械键盘的由来, 与普通键盘的区别以及如何选购及使用维护 - 学习/实践
  19. RD基本功——Vi基础与最常用指令
  20. 刷脸已经逐步在多个领域落地开花

热门文章

  1. webstorm打开的页面如何通过手机访问?
  2. pyinstall 打包资源
  3. Linux命令行常用快捷键
  4. vr全景拍摄的具体方法
  5. MS SQLServer 创建数据库关系图
  6. SDWebUI:AI绘图本地部署及绘图效率实验
  7. ubuntu加了张固态_Ubuntu如何优化ssd?
  8. lichee nano 荔枝派入门——上手
  9. C/C++:sizeof数组与指针
  10. 华为OD机试 - 租车骑绿岛(JS)