您的位置:首页 > 编程语言 > PHP开发

Codeigniter 隐藏URL中index.php

2013-07-20 17:46 483 查看
最经有点想架设一个个人网站玩一玩, 前段时间试了试 zend framwork 觉得对于个人网站来说太过复杂, 所以开始尝试 Codeigniter。 基本原理是差不多的, 文档也比较全。

开始

Codeigniter 这个框架所有的链接都通过 index.php 来传递。 在默认情况下 链接中都需要加上 index.php 的, 当然在我们实际使用时, 是希望把这个去掉的。 很多人讲了很多方法, 我这里只有一点不同。

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

大致上需要改两个地方 :

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

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 的值设’’

$config['index_page'] = '';


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

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: