文档章节

CI URI有效删除index.php(完善CI手册)

lisn
 lisn
发布于 2015/04/01 23:27
字数 682
阅读 261
收藏 3

       秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用。也就是说,在默认情况下,所有CI开发项目的URL都形如以下这种形式:

http://localhost/index.php/welcome很显然,默认情况下,index.php在URL地址段中的存在一定程度上影响了URL的简洁和SEO的进行。我们可以通过下面本文介绍的方法来去掉这个讨厌的Index.php。

你或许已经注意到在CodeIgniter用户手册中,已经存在关于此问题的解决方法。但官方提供的这个.htaccess配置,并不是所有时候都能解决问题。下面经过笔者调试操作步骤供大家分享:
前提:服务器配置使用Apache作为Web服务器。

1、将以下配置信息复制并保存为.htaccess文件(.htaccess文件放置在根目录下,即与application目录同级),

默认情况下,index.php 文件将被包含在你的 URL 中:

 example.com/index.php/news/article/my_article

你可以很容易的通过 .htaccess 文件来设置一些简单的规则删除它。

-----------------------------------------------------------------

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

 

注意:如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L] 在上面的例子中,可以实现任何非index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。

(第一步操作与CI操作手册中相同)

2、修改完成后我们访问CI默认欢迎页面(http://localhost/welcome)时,会报错,错误信息如下:

--------------------------------------------------------------

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@sky00.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log. 

 --------------------------------------------------------------------------------------

我看了下这里网站里的所有东西都是这样报错,就是图片和TXT也打不开,然后查看了一下程序发现里面有三个文件.htaccess、httpd.ini、nginx.conf,我想应该是这几个家伙在作怪,首先想到的就是.htaccess这个分布文件,将其删除,果断打开网站了,那么找到原因了,把删除了的找回来,去apache里开启.htaccess就好了,下面是开启方法:

在apache配置文件httpd.conf中找到

Options FollowSymLinks
AllowOverride None

有的版本是这样写的

Options FollowSymLinks ExecCGI Indexes
AllowOverride None

总之不管怎么写,你只需要把下面的

AllowOverride None改为AllowOverride All

然后在找到

LoadModule rewrite_module modules/mod_rewrite.so

把这个前面的“#”号去掉,就是去掉注释,然后重启apache.搞定!

© 著作权归作者所有

共有 人打赏支持
lisn
粉丝 1
博文 36
码字总数 20700
作品 0
普陀
高级程序员
私信 提问
CI框架去掉URl中的index.php部分

CI框架默认配置中url地址栏存在index.php,想要去掉CI默认url中的index.php。分三步操作: 1、打开apache的配置文件,conf/httpd.conf : LoadModule rewritemodule modules/modrewrite.so,...

Neo_
2012/09/22
0
1
使得CI在NetBeans 8.0中自动提示CI相关类和方法

把这两个文件放到项目文件根目录的nbproject文件夹下面,运行index.php如:http://localhost/你的CI目录/nbproject/index.php,之后重启netbeans。试试写$this->看后面出现什么!哈哈哈 inde...

康师傅
2014/08/12
0
4
[翻译]CI从2.2升级到3.0

英文原文 从2.2 升级到3.0更新之前先保证网站处于离线状态. 步骤 1: 更新 CI 所有文件 替换 system 目录下所有文件,然后替换index.php文件,如果之前有更新index.php,请在新的文件上做更改. 你...

2688
2016/03/02
39
2
nginx多域名配置与 pathinfo(/ 文件夹形式) URL访问不支持配置

多域名支持(设置域名 www.ci.com) nginx安装目录 whereis nginx 查看相关信息 1.查看nginx配置文件 /etc/nginx/nginx.conf 里面这两个是否被注释(必须开启) include /etc/nginx/conf.d/.conf...

绍铖_TT_OO
2016/02/24
86
0
php CI框架学习笔记第一期(目录结构,控制器,视图)

1.目录结构 在编写代码之前,要明确,我们的代码写在什么地方?(解压后的目录结构) 其中user_guide 一般会将其删除 重点来关注application文件夹 2.控制器 控制器说白了就是一个类文件,并...

Rhymo-Wu
2018/07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
51分钟前
1
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
2
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
2
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部