教你如何在CI框架中使用 .htaccess 隐藏url中index.php
秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用。也就是说,在默认情况下,所有CI开发项目的URL都形如以下这种形式:
http://localhost/index.php/blog/logs/this_is_a_test_entry
很显然,默认情况下,index.php在URL地址段中的存在一定程度上影响了URL的简洁和SEO的进行。我们可以通过下面本文介绍的方法来去掉这个讨厌的Index.php。
你或许已经注意到在CodeIgniter用户手册中,已经存在关于此问题的解决方法。但官方提供的这个.htaccess配置,并不是所有时候都能解决问题。本文现在给出一个更完善的解决方案。
注意:在继续之前,请确认你的主机支持.htaccess配置。其中,如果Apache作为Web服务器,需要开启mod_rewrite模块的支持;如果将IIS作为Web服务器,则需要额外安装ISAPI_Rewrite拓展。
具体方法如下:
1.将以下配置信息复制并保存为.htaccess文件。
以下为.htaccess文件信息
RewriteEngineOn
RewriteBase/
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule^(.*)$/index.php?/$1[L]
#如果没有安装mod_rewrite模块,所有的404页面都将被#发送到index.php,此时,程序会像没有设置隐藏时一样运行 ErrorDocument404/index.php