zoukankan      html  css  js  c++  java
  • 基于ZF中的.htaccess文件学习Apache的Rewrite语法

    首先我们看一下这个.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。

  • 相关阅读:
    Hadoop概论
    虚拟机
    Linux的常用命令
    jsoup抓取数据
    分享JQuery动画插件Velocity.js的六种列表加载特效
    html5和css3打造一款创意404页面
    分享一款基于jquery的圆形动画按钮
    一款基于jquery和css3实现的摩天轮式分享按钮
    一款纯css3实现的环形导航菜单
    一款纯css3实现的动画加载导航
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6950407.html
Copyright © 2011-2022 走看看