今天继续给大家介绍Linux运维的相关知识,本文主要内容是Apache的Rewrite功能实战。
一、Apache Rewrite功能简介
Apache的Rewrite功能主要是实现对特定URL的重定向和跳转,可以基于服务器级别或者是目录级别来进行设置。Apache的Rewrite功能的实现,需要安装和加载rewrite模块mod_rewrite。
基于服务器级别的Rewrite功能配置需要在Apache的主配置文件——httpd.conf下进行配置,可以在全局模式下或者是在某个模块中进行配置。如果是想要在配置的虚拟主机里启用Rewrite功能,则必须在Virtualhost模块中开启Rewrite功能。基于目录级别的Rewrite功能配置要注意必须打开FollowSymLinks属性,并且在目录的.htaccess文件中进行声明。
二、Apache mod_rewrite模块检查
接下来,我们来进行Apache的Rewrite功能的配置实战。将对www.rewrite.rewrite.com的访问全部重定向至www.rewrite.com。
首先,我们先对Apache的mod_rewrite模块进行检查,打开Apache的主配置文件,检查发现存在mod_rewrite模块,如下所示:
同时,检查mod_rewrite模块是否启用,结果如下:
综上,在Apache中已经安装了mod_rewrite模块。
三、Apache Rewrite功能实战配置
接下来,我们进行配置rewrite功能。在Apache的主配置文件的全局模式下,插入如下内容
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.rewrite.rewrite.com [NC]
RewriteRule ^/(.*) http://www.rewrite.com/ [L]
1
2
3
然后在/etc/hosts文件中新增如下内容:
192.168.136.11 www.rewrite.rewrite.com www.rewrite.com
1
重启Apache服务器,然后尝试访问www.rewrite.rewrite.com,发现结果如下:
可以看出,当我们访问www.rewrite.rewrite.com时,由于做了Rewrite操作。Apache服务器进行了重定向,将状态码设置为302,并且将其重新定位到www.rewrite.com。
由此可见,我们的Apache Rewrite重写实验成功!
四、Apache Rewrite重写规则简介
在文章的最后,我们来简单介绍一下上面的一些配置。
首先,RewriteEngine on表示开启Apache的Rewrite重写功能。RewriteCond表示进行规则匹配,Apache的Rewrite模块采用的是正则表达式的方式进行URL的匹配,%{HTTP_HOST}表示进行匹配的变量是HTTP域名信息,后面的^表示为以www.rewrite.rewrite.com开头的,RewriteRule表示当满足上述条件时所采取的动作,也是以正则表达式的形式进行体现的。
在Apache的Rewrite重写配置中,RewriteCond和RewriteRule最后都有一个标志符,Apache的mod_rewrite模块的所有标志符如下:
1、R 表示进行强制的外部重定向。
2、F 表示禁用URL,返回403状态码。
3、G 表示强制URL为GONE,返回410HTTP状态码。
4、P 表示强制使用代理转发。
5、L 表示该规则是最后一条规则。
6、N 表示重新从第一条规则开始进行匹配。
7、C 表示该规则与下面的规则相关联。
8、T 表示强制使用MIME类型。
8、NS 表示只用于不是内部子请求。
10、NC 表示不区分大小写。
11、QSA 表示追加请求字符串。
12、NE 表示不再输出转义特殊字符。
13、PT 表示传递给下一个进行处理。
14、S 表示跳过指定数目的规则。
15、E 表示设置环境变量。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40228200/article/details/122693369