浅析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 相关文章推荐
PHP4实际应用经验篇(6)
Oct 09 PHP
让PHP支持页面回退的两种方法[转]
Feb 14 PHP
php-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
基于PHP对XML的操作详解
Jun 07 PHP
浅谈php的优缺点
Jul 14 PHP
php获取文件后缀的9种方法
Mar 22 PHP
CI框架整合smarty步骤详解
May 19 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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
终于听上了直流胆调频
2021/03/02 无线电
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
YII路径的用法总结
2014/07/09 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
Ext对基本类型的扩展 ext,extjs,format
2010/12/25 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
jQuery图片瀑布流的简单实现代码
2017/03/15 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
2019/07/25 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
创建Shapefile文件并写入数据的例子
2019/11/26 Python
解决jupyter notebook显示不全出现框框或者乱码问题
2020/04/09 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
会计实习生工作总结的自我评价
2013/10/07 职场文书
自我评价范文分享
2014/01/04 职场文书
推荐信格式范文
2014/05/09 职场文书
工作失职检讨书500字
2014/10/17 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
英语读书笔记
2015/07/02 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android
Python实现老照片修复之上色小技巧
2021/10/16 Python