CodeIgniter(以下简称”CI”)是一款国外优秀的PHP轻量级MVC框架,它支持PHP4和PHP5,是开发中小型可拓展性需求高的Web应用程序的利器。目前你所见到的这个博客程序,正是采用CI进行的编写。
秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用。也就是说,在默认情况下,所有CI开发项目的URL都形如以下这种形式:
http://localhost/mcder/index.php/test
很显然,默认情况下,index.php在URL地址段中的存在一定程度上影响了URL的简洁和SEO的进行。我们可以通过下面本文介绍的方法来去掉这个讨厌的Index.php。
你或许已经注意到在CodeIgniter用户手册中,已经存在关于此问题的解决方法。但官方提供的这个.htaccess配置,并不是所有时候都能解决问题。本文现在给出一个更完善的解决方案。
注意:在继续之前,请确认你的主机支持.htaccess配置。其中,如果Apache作为Web服务器,需要开启mod_rewrite模块的支持;如果将IIS作为Web服务器,则需要额外安装ISAPI_Rewrite拓展。
具体方法如下:
1. 将以下配置信息复制并保存为.htaccess文件。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
2. 将以上.htaccess文件上传到CI所在项目的根目录(即与index.php同级目录下)
3. 修改application/config.php中的如下参数:
$config['index_page'] = “”; //设置为空
RewriteRule ^(.*)$ /index.php?/$1 [L] 中的问号最好保留,如果没有的话,有些情况会出错。
今天在处理1688这个项目的问题时搜索自己的文章,呵呵,不错。添上一句
RewriteRule ^(.*)$ /index.php?/$1 [L]
这个/也要注意,1688就是这个问题。