浅析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 相关文章推荐
apache rewrite_module模块使用教程
Jan 10 PHP
php 地区分类排序算法
Jul 01 PHP
分享一个php 的异常处理程序
Jun 22 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
composer.lock文件的作用
Feb 03 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
php比较相似字符串的方法
2015/06/05 PHP
php生成gif动画的方法
2015/11/05 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
微信小程序实现分享到朋友圈功能
2018/07/19 Javascript
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Python读取指定日期邮件的实例
2019/02/01 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
python中的测试框架
2020/11/13 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
小学生读书感言
2014/02/12 职场文书
幼儿发展评估方案
2014/06/11 职场文书
小学生放飞梦想演讲稿
2014/08/26 职场文书
小学教育见习总结
2015/06/23 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS
Python中的 No Module named ***问题及解决
2022/07/23 Python