Apache配置伪静态

Apache配置伪静态

    注意:本文中关于Apache的配置修改,一定要记得重启Apache服务    

    伪静态的实现有多种方法,比如通过获取path_info信息使用php逻辑来达到伪静态,使用Apache提供的rewrite来达到伪静态,本文主要对Apache提供的rewrite实现伪静态做个记录

    1、开启Apache服务的mod_rewrite模块:

         编辑 下的httpd.conf文件:

    2、编写伪静态规则

         具体的规则的写法可以学习Apache手册中url重写:http://apache.jz123.cn/rewrite/rewrite_guide.html

        规则写在什么地方?可以直接写在httpd.conf文件中,也可以写在项目文件中的 .htaccess文件中,当要写在 .htaccess文件中时记得在httpd.conf文件中开启对应目录的AllowOverride 

    3、我们使用 .htaccess 的方式(虽然手册中说这会影响Apache的性能,但是我们是测试,所以为了不影响其他项目,就采用这种方式)

         编写 .htaccess 文件

1
2
3
4
5
6
7
8
9
10
<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  # 判断是否存在请求的目录,
  RewriteCond %{REQUEST_FILENAME} !-d
  # 判断是否存在请求的文件,
  RewriteCond %{REQUEST_FILENAME} !-f
  # 如果上面请求的路径文件存在,直接执行请求文件,不存在就继续执行下面的规则
  RewriteRule ^detail/([\d]+).html$ detail.php?id=$1
</IfModule>

         上面的规则意思是:当请求的文件存在时直接执行请求文件,当不存在时执行匹配最后的规则,进入到detail.php文件执行

     4、当我们访问 http://localhost/statichtml/detail/3.html

          因为 statichtml/detail/3.html 这个文件是不存在的,这时我们正真访问的其实是http://localhost/statichtml/detail.php?id=3

          

         当我们访问:http://localhost/statichtml/detail/4.html

         4.html这个文件是存在的

           

           

          此时直接直接执行文件返回:

           

     基本在Apache上的伪静态,简答的配置就是这样,当然你可以根据自己的需求将规则更加优雅。这完全都是你自己的需求和能力决定的。我只是在这里做一个简答的流程性的记录,只有配置的规则的一些只是在Apache手册上面有详细的说明。如果我们不是服务器管理员,只是一个很普通很普通的程序员,我们就先了解这么一个流程,以后工作中用到的时候好好看看手册,毕竟Apache的手册是很详细的。如果想着想着仔细的学习Apache手册,然后记住,这是很难的,如果我们不经常操作,很容易就忘记了。所以还是了解各流程然后需要时学习手册,这样最好。

 

 



posted @ 2015-03-29 13:38  虢国技酱  阅读(544)  评论(0编辑  收藏  举报