浅析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 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
Server.HTMLEncode让代码在页面里显示为源代码
Dec 08 PHP
PHP中使用TCPDF生成PDF文档实例
Jul 01 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
Jul 24 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 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
BBS(php & mysql)完整版(四)
2006/10/09 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
PHP使用socket发送HTTP请求的方法
2016/02/14 PHP
php实现图片压缩处理
2020/09/09 PHP
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
jquery获取对象的方法足以应付常见的各种类型的对象
2014/05/14 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
jqTransform美化表单
2015/10/10 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
如何查看python关键字
2021/01/17 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
知识竞赛活动方案
2014/02/18 职场文书
哈弗商学院毕业生求职信
2014/02/26 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
应急处置方案
2014/06/16 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
刑事附带民事代理词
2015/05/25 职场文书
小学生暑假安全公约
2015/07/14 职场文书