`
zl198751
  • 浏览: 273653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Rewrite 详解RewriteCond

 
阅读更多
RewriteCond 重写规则执行条件
语法: RewriteCond TestString CondPattern
生效域: server config, virtual host, directory, .htaccess
特别的上面的 TestString, 可提供反向引用. 引用模式为: %N 其中N为(0 <= N <=9), 引用当前若干RewriteCond条件中最后符合的条件中的分组成分, 也就是括号里的内容.不过用到的不多. 反向应用多在RewriteRule里常用.
RewriteCond 语法中的 TestStrng 为要被检查的内容, CondPattern 是进行匹配的规则, 它是一个兼容Perl风格的正则表达式和一些其他的特有字符属性. 这里介绍一下.
第一个: ! (感叹号) 表示否的意思. 比如一个条件: 判断访问此页面的上一页URL是否包含 sex 字符的话可以用这样: RewriteCond %{HTTP_REFERER} !(sex)
第二个: < 就是小于的意思, TestString < CondPattern.
第三个: > 就是大于于的意思, TestString < CondPattern.
第四个: = 相等的意思. <, >, = 三个和通常程序语言使用的 <, >, = 功能类似.
第五个: -d 是否是一个目录. 判断TestString是否不是一个目录可以这样: !-d
第六个: -f 是否是一个文件. 判断TestString是否不是一个文件可以这样: !-f
第七个: -s 是否是一个正常的有大小的文件. 判断TestString是否不是一个正常的有大小的文件可以这样: !-s
第八个: -l 是否是一个快捷方式文件. 判断TestString是否不是一个快捷方式文件可以这样: !-l
第九个: -x 是否是一个文件并且又执行权限. 判断TestString是否不是一个文件并且又执行权限可以这样: !-x
第十个: -F 检查TestString是否是一个合法的文件,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能。
第十一个: -U 检查TestString是否是一个合法的URL,而且通过服务器范围内的当前设置的访问控制进行访问。这个检查是通过一个内部subrequest完成的, 因此需要小心使用这个功能以降低服务器的性能.
另外: RewriteCond 指令后面可带 Flag, 现在只要2个可用, 一个是 NC|nocase, 不区分大小写的意思. 一个是 OR|ornext 表示连接下一个条件的意思.
RewriteCond 实际需要使用情况比如要判断一个条件成真的时候才执行相关的重写操作. 紧接着它下面的 RewriteRule 总是在RewriteCond 条件判断为真的时候才被执行.
看下面的一个例子:
#开启服务器重写模式
RewriteEngine on
#来自 www.test.cn 的连接访问本站时都只能访问 test.php 这页.
RewriteCond %{HTTP_REFERER} (www.test.cn)
RewriteRule (.*)$ test.php
#来自 www.test.com 的连接访问本站时都只能访问 newTest.php 这页.
RewriteCond %{HTTP_REFERER} (www.test.com)
RewriteRule (.*)$ newTest.php
OK, RewriteCond 就介绍到这里了. 其实很简单. 就想程序里的 if() 这样的效果. 下篇聊一下 RewriteRule
分享到:
评论

相关推荐

    Apache Rewrite Module 的重定向问题

    Apache Rewrite Module 重定向 偏避的注意点

    apache_rewrite语法

    apache_rewrite语法的详细解析,实现php的URL重写。

    Apache Rewrite url重定向功能的简单配置

    平时帮助我们实现拟静态,拟目录,域名跳转,防止盗链等 2.Apache Rewrite的配置 Apache下的Rewrite配置主要有两种,一种是针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。...

    apache rewrite rule

    apache rewrite rule: 介绍详细

    Apache伪静态Rewrite详解

    方法有两种一种是编译apache的时候就直接 安装rewrite模块,别一种是编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块。二、在Apache配置中启用Rewrite打开配置文件httpd.conf: 代码如下:1....

    Apache的ReWrite的应用

    NULL 博文链接:https://newtime.iteye.com/blog/450305

    解析 .htaccess 文件 apache rewrite

    到英文网站 才找到的 答案 (已译成中文)

    Apache rewrite重写规则的常见应用

    为了让客户不会因此受到任何影响,最好的方法就是使用Apache Rewrite Rule(重写规则)。  二、重写规则的作用范围  —- 1.使用在Apache主配置文件httpd.conf中。  —- 2.使用在httpd.conf里定义的配置中。 ...

    apache rewrite_module模块使用教程

    apache rewrite_module模块使用教程

    Apache rewrite的重写相关的参数说明

    Apache的rewrite的重写非常常用,现总结了一下.

    Apache Rewrite实现URL的301跳转和域名跳转

    Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言。可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式

    Apache URL Rewrite功能配置

    该文档简单描述了Apache URL Rewrite功能配置过程,适用于所有开发服务部署人员。。

    Web.config详解

    Web.config 文件是一个xml文本文件,它用来储存 asp.NET Web 应用程序的配置信息(如最常用的设置asp.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过.NET新建一个Web应用程序后,...

    apache rewrite防盗链三例

    1.利用rewrite 确认你的apache 能使用rewrite mod RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://linuxsky.net/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://linuxsky.net$ [NC] RewriteCond...

    Apache Mod Rewrite 手册

    珍藏的Apache mod write 帮助手册,希望对大家有用

    apache rewrite规则实现白名单

    需求:  六个文件的入口,其他都重定向到index 自己的思路:  正则找出不是六个文件的URL的模式,进行过滤。...最后结果: 代码如下:&lt;IfModule&gt; RewriteEngine on RewriteCond %{REQUEST_URI} ^/$ RewriteRule ^

    apache 开启重定向 rewrite的实现方法

    apache 开启重定向 rewrite的实现方法 1.开启重定向模块 $ ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enable/rewrite.load 2.修改配置文件(某些php框架需要) $ vim /etc/apache2/...

    让Apache支持Rewrite静态页面重写的方法

    Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码: LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c Apache 2.x 的用户请检查 conf/httpd.conf 中是否存在如下一段...

Global site tag (gtag.js) - Google Analytics