浅析Apache中RewriteCond规则参数的详细介绍


Posted in PHP onJune 30, 2013

RewriteCond就像我们程序中的if语句一样,表示如果符合某个或某几个条件则执行RewriteCond下面紧邻的RewriteRule语句,这就是RewriteCond最原始、基础的功能,为了方便理解,下面来看看几个例子。

RewriteEngine on
RewriteCond  %{HTTP_USER_AGENT}  ^Mozilla//5/.0.*
RewriteRule  index.php            index.m.php
RewriteCond  %{HTTP_USER_AGENT}  ^Lynx.*
RewriteRule  index.php            index.L.php 
RewriteRule  index.php            index.b.php

上面语句的作用是当你是用FF浏览器访问index.php这个文件的时候,会自动让你访问到index.m.php这个文件,当你是用一些移动终端访问的 时候,会让你对index.php这个文件的访问实际访问的是index.L.php去,如果你是用其它的浏览器访问的时候,会让你跳到 index.b.php。在说形象一点,上面的语句就等同于程序里面的下面语句(依PHP语句为例):
if($_SERVER['HTTP_USER_AGENT'] == 'Mozilla/5.0')
{
//跳转到对index.m.php的访问
}
else if($_SERVER['HTTP_USER_AGENT'] == 'Lynx')
{
//跳转到对index.L.php的访问
}
else
//跳转到对index.b.php的访问

在看例2:
RewriteCond %{HTTP_REFERER} (www.test.cn)
RewriteRule (.*)$ test.php
上面语句的作用是如果你访问的上一个页面的主机地址是www.test.cn,则无论你当前访问的是哪个页面,都会跳转到对test.php的访问。
在看例三:
RewriteCond %{REMOTE_HOST} ^host1.* [OR]
RewriteCond %{REMOTE_HOST} ^host2.* [OR]
RewriteCond %{REMOTE_HOST} ^host3.*
RewriteRule (.*)$ test.php

上面语句的作用是如果你的地址是host1或host2或host3的时候,则就跳到对test.php。从这里可以看出,RewriteCond语句之间默认的是AND,如果想要OR,则要明确的写出来。
下面是自己收藏的一些有用的重写规则:
RewriteCond %{REQUEST_FILENAME} !-f   //如果文件存在,就直接访问文件,不进行下面的RewriteRule.(不是文件或文件不存在就执行重写)
RewriteCond %{REQUEST_FILENAME} !-d   //#如果目录存在就直接访问目录不进行RewriteRule
RewriteCond %{REQUEST_URI} !^.*(/.css|/.js|/.gif|/.png|/.jpg|/.jpeg)$ //#如果是这些后缀的文件,就直接访问文件,不进行Rewrite
PHP 相关文章推荐
PHP实现多服务器session共享之NFS共享的方法
Mar 16 PHP
PHP insert语法详解
Jun 07 PHP
php 归并排序 数组交集
May 10 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
Jun 21 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
Aug 21 PHP
详解PHP中的Traits
Jul 29 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 #PHP
PHP删除HTMl标签的三种解决方法
Jun 30 #PHP
PHP删除HTMl标签的实现代码
Jun 30 #PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 #PHP
解析link_mysql的php版
Jun 30 #PHP
分享8个最佳的代码片段在线测试网站
Jun 29 #PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 #PHP
You might like
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
详解微信小程序支付流程与梳理
2019/07/16 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
学习python处理python编码问题
2011/03/13 Python
python解决字典中的值是列表问题的方法
2013/03/04 Python
python分割文件的常用方法
2014/11/01 Python
python更改已存在excel文件的方法
2018/05/03 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
weblogic面试题
2016/03/07 面试题
青年文明号事迹材料
2014/01/18 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
义和团口号
2014/06/17 职场文书
机械机修工岗位职责
2014/08/03 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
学校远程教育工作总结
2015/08/11 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL