Codeigniter 隐藏URL中index.php

最经有点想架设一个我的网站玩一玩, 前段时间试了试 zend framwork 以为对于我的网站来讲太过复杂, 因此开始尝试 Codeigniter。 基本原理是差很少的, 文档也比较全。php

 

开始

Codeigniter  这个框架全部的连接都经过 index.php 来传递。 在默认状况下 连接中都须要加上 index.php 的, 固然在咱们实际使用时, 是但愿把这个去掉的。 不少人讲了不少方法, 我这里只有一点不一样。css

google搜了一下,官方文档上也有说明 :http://codeigniter.org.cn/user_guide/general/urls.htmlhtml

大体上须要改两个地方 :服务器

1) 修改根目录的.htaccess 文件 以修改服务器的 从新定向。 这个我的有不一样改法, 我最终采用的是官方版本稍微修改了一下的形态 :app

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^(index\.php|images|js|img|css|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [QSA,L]

这一步须要你确认你的服务器开启了从新定向。框架

 

2) application/config/config.php 将 index_page 的值设’’ide

$config['index_page'] = '';

 

可是就在我完成了这两步以后, 从新定向任然不能成功。 具体表现是这样的 :codeigniter

www.mysite/home  失败
www.mysite//home 成功

须要 加上 // 才能够是从新定向成功。 我尝试了许多方法, 也尝试修改 .htaccess  文件的最后一行都不能够。 最后的解决方法是 修改 application/config/config.php优化

$config['uri_protocol']    = 'PATH_INFO';

将原来的 AUTO 改成 PATH_INFO, 这里也有别人改成 REQUEST_URI, 在个人虚拟空间上是不能够的,应该跟服务器有关。网站

 

以后, 为了搜索引擎优化, 想使全部 带index.php的连接失效的, 能够参考这篇文章 : http://jsnwork.byethost7.com/blog/?p=217

相关文章
相关标签/搜索