浅析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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
example1.php
Oct 09 PHP
PHP5 安装方法
Jan 15 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
配置php网页显示各种语法错误
Sep 23 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
php版微信自定义回复功能示例
Dec 05 PHP
PDO::prepare讲解
Jan 29 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 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
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
python命令行参数sys.argv使用示例
2014/01/28 Python
Python深入学习之对象的属性
2014/08/31 Python
基于python实现聊天室程序
2018/07/27 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
详解爬虫被封的问题
2019/04/23 Python
python的sorted用法详解
2019/06/25 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
Python包和模块的分发详细介绍
2020/06/19 Python
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
英文版餐饮运营管理求职信
2013/11/06 职场文书
努力学习演讲稿
2014/05/10 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
学生退学证明
2015/06/23 职场文书
百年校庆感言
2015/08/01 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android