ci 的routes里可以自定义路由内容
来源:互联网 发布:汉诺塔算法内部流程 编辑:程序博客网 时间:2024/06/05 09:51
application/config/routes.php中定义了一个名为$route的数组,用来设置默认路由和404页面以及可以设置一些匹配方式。
默认的配置如下:
default_controller指定默认的控制器名称,404_override指定当出现404时调用的控制器名称。有时候可能出现解析不成功,或者一直在默认页面,我们可以调用$this->router打印一下当前解析的控制器和Acion名称。比如可以在MY_Controller中如下打印:
确定下解析到哪个控制器了, 然后在看看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';
阅读全文
0 0
- ci 的routes里可以自定义路由内容
- CI框架(十一)routes.php的使用
- rails routes路由笔记
- Laravel之路由(Routes)
- Laravel 分割 routes.php 路由文件的最佳方式
- Laravel最佳分割路由文件(routes.php)的方式
- CI里 自定义类 调用系统类
- 自定义控件--自定义内容可以滚动的TextView
- PHP CI框架的url路由配置
- 在网页里使页面的内容可以编辑,更新
- codeiginter -- 路由配置 routes.php
- sencha touch 路由(routes}浅谈
- Play framework 路由(routes)
- 可以路由的协议
- 一个可扩展的选择器,日期,自定义内容都可以
- 自定义可以编辑内容的Dialog(回调函数)
- 自定义可以列表输入、点击内容的UiContentView
- thinkphp 2.1 中 routes.php 中配置的路由无效的解决方案
- Spring-boot 配置Aop获取controller里的request中的参数以及其返回值
- 使用layui日期控件laydate对开始和结束时间进行联动控制
- canvas的绘图2
- spring整合quartz配置模板
- 网络字节序和本机字节序的思考
- ci 的routes里可以自定义路由内容
- TCP拥塞控制
- java charToByte
- SQLite Expert Professional(SQLite数据库管理工具)官方正式版32位V5.2.2.267下载 | sqlite expert professional破解版
- 思科VPN报错440,Driver failure的解决方法
- C/C++中extern关键字详解
- HDOU2139 Calculate the formula
- 递归计算
- Ubuntu 12.04源码安装xen-4.1.4环境