1. 云栖社区>
  2. PHP教程>
  3. 正文

.htaccess 实例讲解

作者:用户 来源:互联网 时间:2017-11-30 20:50:02

实例讲解htaccess

.htaccess 实例讲解 - 摘要: 本文讲的是.htaccess 实例讲解, Question. 问题 在PHP系统中,在根目录下会有一个入口文件 index.php,即用户在浏览器地址栏中输入一个网址,首先都会进入到这个入口,然后由这个入口文件来分配具体文件来执行用户的请求。 而这个将用户的网址重定向到入口文件

Question. 问题

PHP系统中,在根目录下会有一个入口文件 index.php,即用户在浏览器地址栏中输入一个网址,首先都会进入到这个入口,然后由这个入口文件来分配具体文件来执行用户的请求。

而这个将用户的网址重定向到入口文件 index.php的文件,一般就是通过 .htaccess 实现。所以在根目录下,往往主要都会有这两个文件:

.htaccess 实例讲解-

同时,使用 .htaccess 还能实现伪静态的效果,比如,用户输入的是 http://www.xxx.com/a.html 这样一个静态 html 文件,而实际上则会交由 http://www.xxx.com/index.php 来处理。

Solution. 实现

.htaccess 实例讲解-

这是一个完整的 .htaccess 文件,这个文件的作用简单地说就是将 http://www.xxx.com/a.html?q=abc 这样一个 URL 请求,封装成 http://www.xxx.com/index.php?p=a&q=abc

我们来看每一条语句的作用:

RewriteEngine On  // 开启重写引擎 Off为关闭                  // 只有在开启的情况下,下面的语句才会生效RewriteBase /   // 匹配从第一个 / 后开始,即不会匹配前面的域名                // 例如http://www.xxx.com/a.html 只匹配a.html//  RewriteCond 重写条件,只有满足了重写条件,下面的语句才会执行#RewriteCond %{REQUEST_FILENAME} !-f    // 请求的文件不存在#RewriteCond %{REQUEST_FILENAME} !-d    // 请求的路径不存在                                        // 如果文件或路径存在将返回已经存在的文件或路径RewriteRule ^(.*)/.html$ /index.php?p=$1&%{QUERY_STRING} [L]// 重写规则 只有当上面的RewriteCond条件都满足的时候,将会执行此重写规则// ^(.*)/.html$是一个正则匹配,匹配当前的URL,但是要从第一个/开始,即匹配a.html// ^(.*)表示匹配任意字符 ^表示字符串开始,.表示任意单个字符,*表示匹配0次或N次(N>0)// /.html$表示匹配.html $表示字符串结尾,/.表示转义的. // /index.php?p=$1&%{QUERY_STRING}是重写部分,$1表示反向匹配,引用第一个圆括号中的内容// QUERY_STRING表示?后面的内容// [L] 表示最后一条语句

Extension. 扩展阅读

本文参考资料:
[1]. .htaccess 详解
[2]. Apache中重写URL参数

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索实例 , 讲解 htaccess ,以便于您获取更多的相关知识。