CI框架 .htaccess 隐藏url中index.php的解决(转)
来源:互联网 发布:知进退明得失什么意思 编辑:程序博客网 时间:2024/05/02 02:35
CodeIgniter(以下简称"CI")是一款国外优秀的PHP轻量级MVC框架,它支持PHP4和PHP5,是开发中小型可拓展性需求高的Web应用程序的利器。目前你所见到的这个博客程序,正是采用CI进行的编写。
秉承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文件信息
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
# 如果没有安装mod_rewrite模块,所有的404页面都将被 # 发送到index.php,此时,程序会像没有设置隐藏时一样运行 ErrorDocument404 /index.php
2. 将以上.htaccess文件上传到CI所在项目的根目录(即与index.php同级目录下)
3. 修改application/config.php中的如下参数:
1$config['index_page'] = "index.php";
至
1$config['index_page'] = ""; //设置为空
以上三步,缺一不可。如果一切配置正常,你会发现,再次运行程序的时候,程序已经自动隐藏index.php这个URL段了!
Trackback(UTF-8): http://www.cnSaturn.com/trackback/40
CodeIgniter中开启PATH_INFO时mod_rewrite隐藏index.php的问题2009-08-02 12:54:26 @ 墨尔本 所属分类:PHP/MySQL
我曾专门写过一篇文章介绍如何使用mod_rewrite隐藏URL路径上的index.php,但在某种情况下如果你改变了URI寻址的方式,这份htaccess方案可能会失效。
在CodeIgniter中,当我将URI寻址方式从AUTO更改为PATH_INFO时,即:
$config['uri_protocol'] = 'PATH_INFO';
注:PATH_INFO的开启,是因为我希望通过$_GET来取值,而不是系统默认的POST方式。
在此情况下如何仍然使用以上.htaccess方案,结果将是:index.php顺利隐藏,但主控制器并不能正确的获取值。
解决方案如下,就一步:
去掉以下重写规则中index.php后面的问号即可。
RewriteRule ^(.*)$ /index.php?/$1 [L]
修改后的规则如下:
RewriteRule ^(.*)$ /index.php/$1 [L]
其他地方不变。
- CI框架 .htaccess 隐藏url中index.php的解决
- CI框架 .htaccess 隐藏url中index.php的解决(转)
- CI框架 .htaccess 隐藏url在index.php解决方案
- ci框架&tp框架隐藏index.php
- ci的index.php隐藏
- 有效删除CI框架中URL中的index.php
- ci框架中删除url中的index.php(rul重写)
- CI框架如何删除URL中index.php的终极解决方案
- CI框架如何删除URL中index.php的终极解决方案
- 在htaccess文件中隐藏index.php
- ci 隐藏index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- 如何去除ci框架中显示的index.php
- TFS与其他分布式存储系统的对比分析
- Ubuntu crontab 定时执行php脚本文件
- GBK和GB2312
- dom简介
- Java中static的作用
- CI框架 .htaccess 隐藏url中index.php的解决(转)
- 学无止境
- WindowsAzure Storage的管理工具
- iPhone周边产品空间无限,自行车上的iPhone固定工具Mounty
- 测试一周
- 如何获得fck编辑框内的内容
- Office2003遇到的麻烦事
- 批量加载性能案例
- Page 的生命周期学习小结(翻译兼笔记)