浅析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出错界面
Oct 09 PHP
用Flash图形化数据(二)
Oct 09 PHP
模仿OSO的论坛(四)
Oct 09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
PHP中常用数组处理方法实例分析
Aug 30 PHP
javascript 小型动画组件与实现代码
Jun 02 PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 PHP
php使用百度天气接口示例
Apr 22 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 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/03/27 PHP
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
PHP解决中文乱码
2017/04/28 PHP
PHP反射实际应用示例
2019/04/03 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
javascript 定义新对象方法
2010/02/20 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
js简单抽奖代码
2015/01/16 Javascript
快速掌握Node.js事件驱动模型
2016/03/21 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
2018/01/11 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
2019/10/24 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
Python中datetime常用时间处理方法
2015/06/15 Python
Python for循环生成列表的实例
2018/06/15 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
python def 定义函数,调用函数方式
2020/06/02 Python
python 带时区的日期格式化操作
2020/10/23 Python
金宝贝童装官网:Gymboree
2016/08/31 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
音乐剧猫观后感
2015/06/04 职场文书