安装 mod_rewrite 模块

然大部分的服务器默认安装并启用了这个模块,但是也有一些例外

模块载入了吗?
有时候该模块被编译成 httpd 二进制流,如果是这样的话,你可以通过下列命令查看该模块是否被载入了

httpd -l

如果列表中没有,它有可能是被动态载入的。在这种情况下你可以通过下列代码的输出来查看

<?php phpinfo(); ?>

如果你是自己编译安装4的Apache, 你只需简单的把下列这行添加到你的配置文件(注:这样就可以在Apache启动时自动载入该模块)

./configure –enable-module=rewrite

如果你使用的是Apache的分支版本,如,Fedora Core(红帽子Linux服务器版),你必须安装相关的devel工具

yum install apache2-devel

这样 mod_rewrite 模块就可以用了。

现在 mod_rewrite 是载入了,但它还不能工作
这是很典型的,意思就是说默认的Apache配置不允许使用客户端 .htaccess 文件。 你需要更改

AllowOverride None

AllowOverride All

你只需打开编辑 httpd.conf file 然后搜索 AllowOverride来修改。 这是第一个影响根目录属性的配置,但它不是你想要的。

<Directory />

这是第二个作用Web根目录的属性配置, 你可以修改这个属性,但是你可能不想让你的所有网站都允许mod_rewrite模块操作(如写操作)。 当然了你可以为你的某个特定站点另外创建一个目录节点,

<Directory /path/to/your/site>

   Options FollowSymLinks
   AllowOverride All
</Directory>