• 开启.htaccess重写之前先来看看mod_rewrite

    实时重写URL请求
    服务器君一共花费 183.143 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    Apache的Mode Rewrite模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。在大多数情况下,它和.htaccess文件配合使用。就是说,.htaccess文件的一个主要功能是用来重写URL请求,那么在本小节里,我们来看看如何实现重写。

    mod_rewrite

    实现所有这些神奇功能的模块叫做mod_rewrite,请确保你的服务器安装并启用了该模块:

    sudo a2enmod rewrite
    

    我们一般会把所有涉及URL重写或者重定向的代码这样放置:

    <IfModule mod_rewrite.c>
     # Turn on rewrite engine
     Options +FollowSymlinks
     RewriteEngine on
     # More rules below
     ...
    </IfModule>
    

    开启 httpd.conf 的 rewrite

    1. 在[Apache安装目录]/conf/httpd.conf中找到#LoadModule rewrite_module modules/mod_rewrite.so,去掉前面的注释符号#。如果没有这行,请添加。并确认apache安装目录下的modules文件夹中是否有mod_rewrite.so这个文件。这样就启用了Mod Rewrite功能。
    2. 在[Apache安装目录]/conf/httpd.conf中找到
    3. <Directory />
          Options FollowSymLinks
          AllowOverride None
          Order deny,allow
          Deny from all
      </Directory>
      

    把“AllowOverride None”改成“AllowOverride All”,这样所有的文件夹都支持.htaccess了,或者针对指定的文件夹启用.htaccess,可以在[Apache安装目录]/conf/httpd.conf中加入

    <Directory "D:/sites/nowamagic/">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    

    这种做法一般是和虚拟主机配置在一起的,所以大多数会把上述配置代码写入[Apache安装目录]/conf/extra/httpd-vhost.conf中,这样比较清晰易于管理。

    • 开启了 Apache 的 rewrite 功能后,就可以使用 .htaccess 来进行重写了。关于 mod_rewrite 大概就谈到这里,下面是一些我们需要注意的地方:
    • FollowSymlinks必须启用,这是rewrite引擎的安全需求。
    • 通常FollowSymlinks在Apache的主配置文件中就已经启用了,所以通常可以省略。
    • RewriteEngine命令用于启用rewrite引擎
    • IfModule命令用于判断Apache是否安装了mod_rewrite模块,之后笔者会省略该命令,但不代表这是个好习惯。
    • mod_rewrite会处理所有提交给Apache的URL请求,并与之后的规则进行匹配
更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [软件工程与项目管理] 浏览器与CSS渲染技巧 2 个条目
  2. [软件工程与项目管理] 了解一点WebKit 9 个条目
  3. [移动开发] 从代码角度去认识 Handler 4 个条目
  4. [PHP程序设计] PHP里的布尔类型 3 个条目
  5. [智力开发与知识管理] 信息的类型与结构 9 个条目
  6. [移动开发] Layout_weight属性解析 5 个条目
  7. [PHP程序设计] 声明式编程范式 12 个条目
  8. [Python程序设计] Django 入门知识浅介 10 个条目
  9. [Linux操作系统] CentOS上使用EPEL Repository 2 个条目
  10. [Python程序设计] Python语言概述 6 个条目
  11. [移动开发] Android开发基础知识 4 个条目
  12. [Python程序设计] urls.py设置技巧 8 个条目
窗口 -- [资讯]