<?php
/*
* 1.在自己的项目中的根目录创建一个.htaccess的文件
*/
/*
* 2.设置重写规制
* 必须保证Apache配置文件(LoadModule rewrite_module modules/mod_rewrite.so)的扩展是打开的
*/
/*
* 必须保证配置虚拟机的 AllowOverride None(为All) 允许所有用户进行访问
* 3.开启重写规则
* RewriteEngine on #开启重写引擎
* RewriteRule (\d+).html 2016917/indexa.php?page=$1 [L,NC]
* 4.防盗链
* RewriteCond %{HTTP_REFERER} !^$ [NC] #NC代表不区分大小写
* RewriteCond %{HTTP_REFERER} !http://www.php7.com.* (自己的域名) [NC]
* ReWriteRule .*\.(gif|png|jpeg|jpg)$ 110.gif (盗图链接的图片) [L]
* 5.友好提示
* RewriteCond %{REQUEST_FILENAME} !-d #检测是否是否一个目录
* RewriteCond %{REQUEST_FILENAME} !-f #检测是否是一个文件
* REWriteRule .* 2.gif [L] #L代表结束不匹配了
*/
##############################################################
/*
CI框架中的重写规则
第一步在虚拟主机开启 AllowOverride All
第二步 配置伪静态时 在CI框架的配置文件 config中 修改 URL协议为
第三步在配置文件改 $config['uri_protocol'] = 'PATH_INFO';
*/
##############################################################
/*
* RewriteCond条件的语法
* RewriteCond 判断依据 条件表达式 [条件标志]
* 判断依据:可以使用服务器变量:
* RewriteCond %{REQUEST_FILENAME} !-d
* RewriteCond %{REQUEST_FILENAME} !-f
* 比如:%{REQUEST_FILENAME} 表示请求的文件名称
* 比如:%{HTTP_REFERER}:表示请求的来源
*/
##############################################################
/*
* 条件表达式:可以是一些标志,或者字符串
* -d 表示是一个目录
* -f 表示是一个文件
* RewriteCond %{REQUEST_FILENAME} !-d //如果请求的路径不是一个目录
* RewriteCond %{REQUEST_FILENAME} !-f //如果请求的路径不是一个文件
*
*/
##############################################################
/* 条件标志
* [NC]表示不区分大小写
* [OR]在默认情况下多个条件(RewriteCond)之间是并且的关系。如果我们使用或关系则后台添加[OR]标志。
*/
##############################################################
/*
* RewriteRule 语法规则
* RewriteRule 规则的url(可以使用正则) 目标url [规则标志]
*/
##############################################################
/*
* 规则标志:
* [F] 表示:表示禁止重写
* [NC] 表示:不区分大小写
*/
Apache重写机制
最新推荐文章于 2020-06-15 17:15:25 发布