Clean URL 配置(Apache)

什么是 Clean URL?

Clean URL 中文可译作“简洁链接”,是一种美观、对搜索引擎友好并且可以表意的 URL。
例如:http://www.shingo.cn/Tech/Web-Develop 就比 http://www.shingo.cn/?q=node/179 要好得多。
Clean URL 被很多 PHP 博客、CMS(内容管理系统)所使用。 如:WordPressDrupal……

Clean URL 的原理

Clean URL 是通过 Apache 的 mod_rewrite 模块实现的。原理简单来说就是把那些丑陋而且没有意义的 URL 替换掉。

Clean URL 的配置

我们经常遇到的错误是 WordPressDrupal 等网站程序告诉你,Clean URL 不能工作,但这不是网站程序引发的错误,而是服务器配置。

既然 Clean URL 是通过 Apache 的 mod_rewrite 模块实现的,那自然先要配置 Apache 了。

  1. 打开 C:\Program Files\Apache Group\Apache\conf(Apache 的安装目录,根据情况可能有所不同)下的 httpd.conf 文件;
  2. 找到 #LoadModule rewrite_module modules/mod_rewrite.so 一行,把前面的“#”号去掉;
  3. 找到 #AddModule mod_rewrite.c 一行,把前面的“#”号去掉;

这样 mod_rewrite 模块就算配置好了,但这还不够,还需要让网站目录下的 .htaccess 文件能起作用才行!

人们常常因为忽略了下面所说的这个选项而不能使 Clean URL 工作并且不知所措:

找到

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

或者

<Directory "网站根目录">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

 把 AllowOverride None 改为 AllowOverride All

OK,保存,重启 Apache,大功告成。