一、Rewrite
1、Rewrite规则简介
Rewrite主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言,可基于服务级的(http.conf)和目录级的(.htaccess)两种方式。如果要想用到rewrite模块,必须先安装或加载rewrite模块。
安装Rewrite模块的两种方式:
方法一:是编译apache的时候就直接安装Rewrite模块
方法二:编译apache时以DSO模式安装apache,然后再利用源码和apxs来安装rewrite模块
针对该两种方式的具体介绍在之前的博文中具有详细的描述;
2、基于服务器级别的(httpd.conf)有两种方法:
方法一:在httpd.conf的全局下,直接利用RewriteEngine on来打开Rewrite功能;
方法二:在局部里利用RewriteEngine on来打开Rewrite功能,下面将会举例说明,需要注意的是,必须在每个virtualhost里用RewriteEngine on 来打开Rewrite功能,否则virtualhost里没有RewriteEngine on它里面的规则也不会生效;
基于目录级的(./htaccess),要注意一点那就是必要打开此目录的FollowSymLinks属性且在./htaccess里要声明RewriteEngine on
3、Apache mod_rewrite规则重写的标志一览:
1) R[=code](force redirect) 强制外部重定向2) F(force URL to be forbidden) 禁用URL,返回403HTTP状态码。3) G(force URL to be gone) 强制URL为GONE,返回410HTTP状态码。4) P(force proxy) 强制使用代理转发。***5) L(last rule) 表明当前规则是最后一条规则,停止分析以后规则的重写。 -- 类似防火墙 - 一旦匹配则不继续