Apache配置重定向

在很多情况下我们需要实现重定向的功能,比如为了安全性,隐藏项目实际目录,或者为了更好地进行SEO。Apache提供了重定向模块,可以根据需要改变外部的URL。

要使用Apache的重定向功能,首先要知道如何定制Apache的模块功能。在Apache的安装目录下的conf文件夹中,有一个全局配置文件httpd.conf,该配置文件只会在每次Apache启动的时候才会被读取,还有一个配置文件是.htaccess,在一个项目中,这个文件可以不存在,它用于重写所在目录及其子目录中的Apache行为活动,每次在该文件所在目录的请求都会读取它,当没有该需求时,即使用Apache的默认配置,该文件无效。http.conf比httaccess的权重更高,前者规范后者的行为,只有前者允许对某些行为进行重写,.htaccess才有效。

在当前案例中,我们需要http.conf中允许对.htaccess所在目录及其子目录拥有权限、文件控制。

前提准备

设项目根目录为E:/blog,在根目录中新建文件夹test,再在test下新建php文件index.php,index.php中包含以下代码:

安装好Apache服务器,建议使用xampp集成安装包。

步骤一

在http.conf中添加如下配置:

AllowOverride AuthConfig FileInfo

步骤二

在E:\blog目录下新建文本文件,再另存为.htaccess,写入如下内容:

RewriteEngine on

RewriteBase /test/

RewriteRule ^index/([0-9]+)/?$ index.php?id=$1

其中:

RewriteBase /test/是表示会基于/test目录重写地址

RewriteRule ^index/([0-9]+)/?$ index.php?id=$1是表示当以 ’http://www.example.com/index/数字‘ 的格式访问服务器时,会重写为 ’http://www.example.com/index.php?id=数字‘ 。

步骤三

在浏览器中打开”http://www.example.com/index/23“,页面将会显示23

,即成功实现http://www.example.com/index/23到http://www.example.com/test/index.php?id=23的重写。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180104G0BXX800?refer=cp_1026

相关快讯

扫码关注云+社区