首先我们看一下这个.htaccess文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

这里面涉及到了3个指令:

1、RewriteEngine  最简单,控制重定向引擎的开关。第一条指令表示打开重定向引擎。

2、RewriteCond 指令略微复杂一些。

每一条这个指令定义一个条件,仅仅有这个条件满足时。跟在这个指令之后的那条 RewriteRule 才会起作用。注意:这个指令仅仅为之后的一条 RewriteRule 指令提供条件!比方,上面文件里的第二条 RewriteRule 指令就不须要必须在之前的 RewriteCond 指令满足的情况下才运行。

假设想同一时候推断多个条件的话。能够在后面加上 [OR] 标志,表示临时不结束推断。继续看下一条 RewriteCond 指令。

这条指令的第二个參数是被推断的值,在这里是server变量 %{REQUEST_FILENAME}

第三个參数是匹配模式,文件其中用到的几个匹配模式的意思分别为:

-s 推断第二个參数是否是server上存在的,大小大于0的常规文件;

-l 推断第二个參数是否是server上存在的,符号链接文件;

-d 推断第二个參数是否是server上存在的,目录;

假设符合这三条中的随意一条,就会运行第一条 RewriteRule 指令。

3、那么就让我们来看看 RewriteRule 指令。

RewriteRule 指令的第二个參数是个正則表達式。第一个起作用的 RewriteRule 指令的正则会应用于请求的URL地址(urlencode那种的);之后的RewriteRule指令则将正则应用于上一条指令的结果。

这条指令的第三个參数是被替换的值。- 表示保持原样。不替换。

这条指令后面也能够加标志。

比方 NC 标志的意思是 no case。L 标志就是 停止以下的 RewriteRule 指令的运行。

所以,ZF这个文件的意思就是假设是server中存在的文件,就不要做重定向。假设请求路径中的文件不存在。就重定向到index.php。

基于ZF中的.htaccess文件学习Apache的Rewrite语法的更多相关文章

  1. 程序中的.htaccess文件是做什么的

    程序中的.htaccess文件是做什么的 一.总结 一句话总结: htaccess=ht(Hypertext)+access=超文本入口 覆盖Apache服务器的默认配置 .htaccess(超文本访 ...

  2. 在apache中使用.htaccess文件的注意事项

    在apache的配置文件中: <VirtualHost *:80> ServerName tp5.com DocumentRoot d:/wamp/www/tp5.com/public & ...

  3. Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结

    一. 简单实例介绍一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置: 1)在httpd.conf文件里 ...

  4. Apache .htaccess文件

    今天在将ThinkPHP的URL模式由普通模式(URL_MODE=1)http://localhost/mythinkphp/index.php/Index/user/id/1.html改为重写模式 ...

  5. Apache伪静态(Rewrite).htaccess文件详解

    Htaccess(超文本访问)是一个简单的配置文件,它允许设计师,开发者和程序员通过它来改变Apache Web服务器的配置.这些功能包括用户重定向.URL重写(url rewrite,国内很多称为伪 ...

  6. Apache 中httpd.conf文件配置详解(转载)

    httpd.conf文件配置详解   Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现.下面让我们来看看htt ...

  7. 学习Apache(六)

    Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...

  8. .htaccess文件讲解

    .htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户 ...

  9. .htaccess 文件来进行用户组的目录权限访问控制

    <IfModule rewrite_module>RewriteEngine onRewriteRule ^((?:bootstrap|css|img|js||MathJax|video) ...

随机推荐

  1. protobuf 编译 java js文件详解

    首先下载protobuf.exe 下载地址:https://download.csdn.net/download/qq_34756156/10220137 MessageBody.proto synt ...

  2. 取消VS2017窗口置顶

    今天打开VS2017,莫名其妙窗口置顶了,百度了一下如何取消窗口置顶,就是Ctrl+Alt+Esc组合键,就可以取消窗口置顶了,至于到底怎么会突然置顶的我也不知道emmm... /********** ...

  3. [转]JAVA回调机制(CallBack)详解

    看见一篇博客比较通俗的解释了回调机制,转载一下,感谢原文作者Bro__超,原文地址:http://www.cnblogs.com/heshuchao/p/5376298.html 序言 最近学习jav ...

  4. php基础知识 书写格式

    PHP,是英文超文本预处理语言Hypertext Preprocessor的递归缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言. php嵌入页面的标记有 ...

  5. VS2013(Win10X64)-配置编译Caffe

    主要看这篇文章,有点小瑕疵,瑕不掩瑜.参考链接:http://www.bubuko.com/infodetail-902302.html 文中红色标记为文章小瑕疵的地方,在此文中标记出来,做为修改对上 ...

  6. Python学习①. 基础语法

    Python 简介 Python 是一种解释型,面向对象的语言.特点是语法简单,可跨平台 Python 基础语法 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编 ...

  7. 在jboss上部署web应用

    1.JBoss介绍 JBoss完全实现了J2EE的服务栈: EJB (Enterprise JavaBeans) JMS (Java Message Service) JTS/JTA (Java Tr ...

  8. servlet_获取初始化参数

    在web.xml的<servlet>标签中增添 <init-param> <param-name>XXX</param-name> <param- ...

  9. MVC 返回404,返回图片,流到数组,apk信息

    return HttpNotFound(); byte[] buffer0 = QRCode(); return File(buffer0, @"image/jpeg"); // ...

  10. LINUX命令行如何查看memcache运行状态

    (附加)如何查看memcache服务器端版本:  ./memcached  -h memcache的运行状态可以方便的用 stats 命令显示. 首先用telnet 127.0.0.1 11211这样 ...