基于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。
基于ZF中的.htaccess文件学习Apache的Rewrite语法的更多相关文章
- 程序中的.htaccess文件是做什么的
程序中的.htaccess文件是做什么的 一.总结 一句话总结: htaccess=ht(Hypertext)+access=超文本入口 覆盖Apache服务器的默认配置 .htaccess(超文本访 ...
- 在apache中使用.htaccess文件的注意事项
在apache的配置文件中: <VirtualHost *:80> ServerName tp5.com DocumentRoot d:/wamp/www/tp5.com/public & ...
- Apache之Rewrite和RewriteRule规则梳理以及http强转https的配置总结
一. 简单实例介绍一般来说,apache配置好http和https后,如果想要做http强转到https,需要设置url重定向规则,大致需要下面几个步骤即可完成配置: 1)在httpd.conf文件里 ...
- Apache .htaccess文件
今天在将ThinkPHP的URL模式由普通模式(URL_MODE=1)http://localhost/mythinkphp/index.php/Index/user/id/1.html改为重写模式 ...
- Apache伪静态(Rewrite).htaccess文件详解
Htaccess(超文本访问)是一个简单的配置文件,它允许设计师,开发者和程序员通过它来改变Apache Web服务器的配置.这些功能包括用户重定向.URL重写(url rewrite,国内很多称为伪 ...
- Apache 中httpd.conf文件配置详解(转载)
httpd.conf文件配置详解 Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现.下面让我们来看看htt ...
- 学习Apache(六)
Apache 是一款使用量排名第一的 web 服务器,LAMP 中的 A 指的就是它.由于其开源.稳定.安全等特性而被广泛使用.下边记录了使用 Apache 以来经常用到的功能,做此梳理,作为日常运维 ...
- .htaccess文件讲解
.htaccess文件(或者"分布式配置文件")提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户 ...
- .htaccess 文件来进行用户组的目录权限访问控制
<IfModule rewrite_module>RewriteEngine onRewriteRule ^((?:bootstrap|css|img|js||MathJax|video) ...
随机推荐
- Chrome 最小化恢复之后部分黑屏
解决办法:设置->显示高级设置->关闭硬件加速
- Project Management -- How to use GitHub with Git
如何通过Git使用GitHub ——PM曾子轩 从未使用过Git 一.从官网下载Git 此部分略 二.用Git连接上GitHub(为保持完整性,此部分引用博客:https://www.cnblogs. ...
- SQL Server之存储过程
存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它 ...
- 安装mysql遇到的几个坑
1. 官网下载压缩版mysql,配置太复杂 弃之 2. 官网下载最新版本mysql安装包 5.8.X,安装成功,一路next,安装成功后发现没有看到自定义安装路径,查看mysql安装完成的路径果然在C ...
- CorelDRAW图片导出变色,如何解决?
很多小伙伴反映说CDR颜色导出不准确,特别是CorelDRAW X4以及之前的版本,那么CDR导出变色的问题是怎么导致的,如何解决呢,本文小编分享一些自己的心得. 一:出现问题. 比如下面这个问题,明 ...
- 团体程序设计天梯赛-练习集-L1-042. 日期格式化
L1-042. 日期格式化 世界上不同国家有不同的写日期的习惯.比如美国人习惯写成“月-日-年”,而中国人习惯写成“年-月-日”.下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期. 输 ...
- 01 DOS常用命令
有时候没有可视化窗口,命令行对文件进行操作更方便快捷 cmd 命令弹出 dir 查看当前所在目录下的文件 ctrl+c 退出 \a 显示隐藏文件 cd /改变到根目录 dir /a 显示隐藏文件 di ...
- 创建100个目录dir1-dir100一键完成
创建100个目录dir1-dir100将系统中已有文件xxx.txt复制1000份1.txt-1000.txt将文件1-10保存到第一个目录中11-20保存到第三个目录中的形式将所有文件处理完 #!/ ...
- eas之获取单据编码规则
//获取单据编码规则 /*** @Title: getNumber* @Description: TODO(获取单据编码规则)* <p>* @date 201 ...
- sql查询原理
1.单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 1)简单的单表查询 SELECT 字段 FROM ...