当前位置: 首页 > 编程笔记 >

CodeIgniter配置之routes.php用法实例分析

班经亘
2023-03-14
本文向大家介绍CodeIgniter配置之routes.php用法实例分析,包括了CodeIgniter配置之routes.php用法实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例分析了CodeIgniter配置之routes.php用法。分享给大家供大家参考,具体如下:

application/config/routes.php中定义了一个名为$route的数组,用来设置默认路由和404页面以及可以设置一些匹配方式。

默认的配置如下:

$route['default_controller'] = "welcome";
$route['404_override'] = '';

default_controller指定默认的控制器名称,404_override指定当出现404时调用的控制器名称。有时候可能出现解析不成功,或者一直在默认页面,我们可以调用$this->router打印一下当前解析的控制器和Acion名称。比如可以在MY_Controller中如下打印:

var_dump($this->router->fetch_directory());
var_dump($this->router->fetch_class());
var_dump($this->router->fetch_method());

确定下解析到哪个控制器了, 然后在看看URL的配置、服务器配置,以及可以在Router.php 和URI.php中调试下。

$route数组也可以通过通配符(:num, :any)、正则来设置重写规则,下面是一些简单的例子:

1、将 http://pc.local/admin/detail_1.htm 请求解析到 http://pc.local/admin/detail.htm?user_id=1 处理。
Codeigniter并不支持包含查询字符串的重写规则,这个规则看起来应当这么写:

$route['admin/detail_(:num)'] = 'admin/detail?user_id=$1';

但实际上并未生效,程序匹配到admin/detail?user_id=1后用"/"分隔,索引为0的为控制器名,索引为1的为方法名,也就是会将上面的 detail?user_id=1赋值给方法名,结果可想而知就404了。搞清分隔原理后可以在detail后面增加一个斜杠,确保类名和方法名的正确,如:
$route['admin/detail_(:num)'] = 'admin/detail/?user_id=$1';

但此时又存在参数的获取问题了,会将第三个参数传递给方法,如果需要使用$_GET或者$this->input->get获取还需要对参数进行处理,如:
parse_str(ltrim($query_string, '?'), $_GET);

2、对PATH_INFO的URL形式重写规则还是比较支持的。如要实现http://pc.local/admin/1这种格式:
$route['admin/(:num)'] = 'admin/detail/$1';

参数的获取就只能通过段落的方式来获取了。

注意: 路由将会按照定义的顺序来运行.高层的路由总是优先于低层的路由.

最后,能使用CI来设置的路由还是建议使用CI来设置,不依赖服务器配置。

更多关于CodeIgniter框架相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

 类似资料:
  • 本文向大家介绍CodeIgniter配置之config.php用法实例分析,包括了CodeIgniter配置之config.php用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了CodeIgniter配置之config.php用法。分享给大家供大家参考,具体如下: 配置说明 $config['language']:指定项目语言包。需要注意的时Codeigniter自带的类库错误

  • 本文向大家介绍CodeIgniter配置之SESSION用法实例分析,包括了CodeIgniter配置之SESSION用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了CodeIgniter配置之SESSION用法。分享给大家供大家参考,具体如下: 刚使用Codeigniter时也被其中的SESSION迷惑过,后来就再也没用过CI自带的SESSION,想必还是有必要整理一下SES

  • 本文向大家介绍CodeIgniter配置之database.php用法实例分析,包括了CodeIgniter配置之database.php用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了CodeIgniter配置之database.php用法。分享给大家供大家参考,具体如下: CodeIgniter的数据库配置文件位于application/config/database.ph

  • 本文向大家介绍Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析,包括了Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp 框架配置操作之动态配置、扩展配置及批量配置。分享给大家供大家参考,具体如下: 动态配置 设置格式: 例如,我们需要动态改变数据缓存的有效期的话,可以使用 动态配置赋值仅

  • 本文向大家介绍java队列之queue用法实例分析,包括了java队列之queue用法实例分析的使用技巧和注意事项,需要的朋友参考一下 Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构 Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。 Queue的实现 1、没有实现的阻塞接口的LinkedList: 实现

  • 本文向大家介绍Android入门之AlertDialog用法实例分析,包括了Android入门之AlertDialog用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述的是AlertDialog,这种对话框会经常遇到。AlertDialog跟WIN32开发中的Dialog不一样,AlertDialog是非阻塞的,而阻塞的对话框用的是PopupWindow。 先贴出该程序运行的截图: