`

CodeIgniter框架全面去除URL中的index.php

    博客分类:
  • php
阅读更多

CodeIgniter框架的所有入口都是index.php, 比如http://localhost/index.php/controller/action/parameters

 

那么如何省略掉URL 上的 index.php, 让URL更简化:http://localhost/controller/action/parameters

 

有以下两大步:

 

1. 通过.htaccess 文件重写, 这里假设你的apache 已经支持重写以及支持.htaccess文件了,并且可以正常访问CI框架。

.htaccess内容如下 :

 

RewriteEngine on   
RewriteCond $1 !^(index\.php|images|robots\.txt)   
RewriteRule ^(.*)$ /index.php/$1 [L]

 .htaccess文件的好处是修改后不用重启服务即可生效。

 

到这里第一步完成了, 再去浏览器试试http://localhost/controller/action/parameters (这是演示路径,具体是你的测试地址),去掉了index.php访问正常。

 

但问题是,你按原来的带index.php的路径去访问,依然可以访问。

那么这就是不全面去除了,因为用户还可以输入带index.php路径访问你的页面, 这样对搜索引擎SEO也不好,因为搜索引擎可能会收录了两种页面地址, 这样分散权重。彻底去除,我们可以看下面第二步:

 

2. CI框架提供了非常灵活的扩展机制,用户可以在application的相应目录里扩展系统的类,CI会优先去读application里的类,如果没有找到,再去读系统默认的类。

 

这里我们在application/core里新建立一个MY_Controller.php文件扩展系统的CI_Controller,这个MY_前缀是可以在application/config/config.php配置文件里修改的。扩展类代码如下:

 

<?php

class MY_Controller extends CI_Controller {
	
	public function __construct(){
		parent::__construct();
		$this->dealWithIndexPage();
	}
	
	protected function dealWithIndexPage(){
		$uri = $this->input->server('REQUEST_URI',true);
		//deal with index.php
		if(strpos($uri,'index.php')!==false){
			$this->load->helper('url');
			redirect('/error/');
		}
	}
}

 这里我们将所有的URL上带有index.php的路径跳转到我们自定义的错误页面,这样就不会再出现带index.php的链接了,是不是很方便呢?

至于自定义错误页面,你可以放置网站的地图方便用户定位,或者放置有个性的图片说明,这就看你的创意了 :)

分享到:
评论

相关推荐

    基于Codeigniter框架的pkadmin后台管理系统.zip

    基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的pkadmin后台管理系统源码基于Codeigniter框架的...

    用CodeIgniter框架快速构建企业门户网站.pdf

    CodeIgniter 框架快速构建企业门户网站 CodeIgniter 是一个免费、轻量级、容易安装的 PHP 开发框架,采用 MVC 模式,可以使开发变得轻松。使用 CodeIgniter 框架可以快速开发出适合企业需求的门户网站。 1. ...

    URL路由设置-CI(codeigniter)PHP框架再探_.docx

    CodeIgniter(CI)是一个流行的PHP框架,它提供了一种优雅的方式来构建动态网站。在CI中,URL路由是一个关键功能,允许开发者自定义URL结构,使其更符合SEO标准和用户体验。下面将深入探讨CI的URL路由设置。 1. **...

    解析如何去掉CodeIgniter URL中的index.php

    本篇文章是对如何去掉CodeIgniter URL中index.php的方法进行了详细的分析介绍,需要的朋友参考下

    PHP开发框架CodeIgniter中文参考资料

    它为开发者提供了一个全面的API参考,帮助他们理解和使用框架中的每个类和方法。此外,手册还涵盖了错误处理、日志记录以及性能优化等方面的指导。 2. **CodeIgniter用户指南(v1.7.2).chm**:这是CodeIgniter ...

    基于PHP CodeIgniter框架的CMS系统开发.pdf

    基于PHP CodeIgniter框架的CMS系统开发.pdf

    PHP敏捷开发CodeIgniter框架

    2. **安装与配置**:安装CodeIgniter非常简单,通常涉及下载框架的ZIP文件,解压到服务器的适当位置,并配置基本的 `.htaccess` 和 `index.php` 文件。开发者可以通过修改配置文件来适应自己的项目需求。 3. **URL...

    ci 隐藏 index.php 设置路由

    这将告诉CodeIgniter框架,URL中不应包含`index.php`部分。 ### 三、设置路由规则 在`application/config/routes.php`文件中,我们可以自定义URL的映射规则。例如,以下代码: ```php $route['product/(:num)'] =...

    Packtpub.CodeIgniter.1.7.Professional.Development.Apr.2010.rar

    《CodeIgniter 1.7 专业开发指南》是由Packtpub出版的一本关于Web开发的书籍,专注于CodeIgniter框架的使用与实践。CodeIgniter是一个轻量级的PHP框架,它为开发者提供了一个简单而优雅的工具包,用于构建功能强大的...

    CodeIgniter.for.Rapid.PHP.Application.Development.pdf

    这款框架专为需要简单优雅工具集来创建全面的Web应用程序的PHP开发者设计。CI采用模型-视图-控制器(Model-View-Controller,简称MVC)架构模式,与Ruby的Rails框架有相似之处,旨在简化开发流程而非增加负担。 ###...

    视图View-CI(codeigniter)PHP框架__1.docx

    在CodeIgniter (CI) PHP框架中,视图(View)是MVC(Model-View-Controller)架构中的一个重要组成部分,主要用于呈现用户界面和静态HTML内容。本文将详细讲解如何在CI中创建、访问、传递数据以及处理视图的返回字符串...

    PHP 敏捷开发框架 CodeIgniter

    CodeIgniter是一个轻量级、高性能的PHP框架,专为开发者提供快速开发应用程序的工具。它的设计目标是简化开发过程,使程序员能够更专注于编写代码,而不是去解决底层的复杂问题。这个框架以其简单易用的API、清晰的...

    PHP100教程2012版:CodeIgniter框架教程(3)(第17讲) 解压密码

    根据给定的信息,我们可以推断出本教程主要围绕着PHP100教程2012版中的第17讲——CodeIgniter框架相关内容展开。由于提供的“部分内容”中似乎包含了与解压密码相关的信息(1931-223-133-223),这里将不会涉及具体...

    CodeIgniter框架

    CodeIgniter是一个轻量级、高性能的PHP框架,专为开发者提供强大而高效的工具来创建全功能的Web应用程序。这个框架以其简单易用、文档丰富和极小的学习曲线而受到欢迎。下面我们将深入探讨CodeIgniter的核心特性、...

    php敏捷开发框架Codeigniter

    在压缩包中的"敏捷开发Codeigniter"可能包含了关于如何在CodeIgniter框架下实践敏捷开发方法的资源,比如快速原型设计、持续集成、测试驱动开发等实践。这些资料可以帮助开发者更好地运用敏捷理念,提高开发效率和...

    基于MVC模式的PHP开发框架CodeIgniter.pdf

    在本文中,我们详细介绍了MVC模式和CodeIgniter框架的特点和优势,并讨论了使用CodeIgniter框架的好处。通过本文,读者可以了解到MVC模式和CodeIgniter框架的基本概念和应用,提高自己的开发技能和知识。

    php基于CodeIgniter框架

    PHP 基于 CodeIgniter 框架 CodeIgniter(CI)是一种 PHP 框架,旨在帮助开发者快速、简便地构建应用程序。CI 的出现是为了解决开发者在编写应用程序时遇到的问题,即希望写出运行状态良好的应用程序,同时也希望...

    php100:CodeIgniter框架教程(3)(第17讲)视频解压密码

    在深入探讨《php100:CodeIgniter框架教程(3)(第17讲)》的相关知识点之前,我们先来了解一下CodeIgniter框架的基本概念及其在PHP开发中的地位。CodeIgniter是一款轻量级、高性能的PHP框架,旨在简化Web应用的开发...

    [其他类别]CodeIgniter 开源PHP框架 1.7.1_codeigniter_1.7.1.zip

    CodeIgniter是一个轻量级、高效且功能丰富的开源PHP框架,专为开发人员提供构建动态网站所需的工具和服务。1.7.1版本是该框架的一个早期稳定版本,它在当时的PHP社区中广受欢迎,因其易用性和灵活性而备受赞誉。 在...

Global site tag (gtag.js) - Google Analytics