jiyi_1990 发表于 2014-10-22 17:10:39

急急急!新手求助一个关于CI路由的问题!

本帖最后由 jiyi_1990 于 2014-10-23 12:50 编辑

各位大大们好,小弟初来CI大家族,现公司有个项目的url路由有个问题,麻烦大家帮忙看下,谢谢啦!~

下面是有问题的路由配置规则
$route['news/(:num)/(:num).html'] = 'news/news_lastest_by_year/$1/$2';
$1是传递时间参数(2012,2013.....),$2是传递分页的参数(第1页,第2页.....)

现在当我url为xxx/news/2014/1.html的时候 此路由无效,但是xxx/news/2014/2.html的时候正常,也就是说page变量在0和1的时候匹配不到。
现在把url路由改成 $route['news/(:num)'] = 'news/news_lastest_by_year/$1/$2'; 的时候就能匹配到url为xxx/news/2014/1.html,但是匹配不到其他的,

也就是说我想实现xxxx/news/2014/1.html和xxxx/news/2014/2.html这样的的规则必须上面两条一起用才行!


请问这是什么原因呢?我应该如何去解决?下面还有个三个变量的路由匹配,也是这样的问题,谢谢大家了!!!{:soso_e185:}

-----------------------------------------------------------------------------------------------------------------------------------------------------忘记说了,最重要的,我去跟踪时候发现,路由根本匹配不到,
当我url为http://xxxx.com/news/category/2013/1.html的时候,CI框架的router.php 获取的method变量为category
当我url为http://xxxx.com/news/category/2013/2.html的时候,CI框架的router.php 获取的method变量为news


也就是说根本没走这路由,知己CI的路由判断了method不是news 就找不到控制器了!

dren_a 发表于 2014-10-22 19:19:33

匹配不到应该是前面的路由匹配到了。

一叶扁舟 发表于 2014-10-23 08:11:25

所有路由信息都贴出来看看

IvanCI 发表于 2014-10-23 09:46:29

不是路由不匹配, 是因为你程序内没有处理好page这个问题... 在获取page时候1一般是不作用的所以需要你判断一下.

阿呆 发表于 2014-10-23 10:14:13

经测试,代码没问题。。。。

http://localhost/ci/index.php/news/2014/1.html
输入:2014------------1

http://localhost/ci/index.php/news/news_lastest_by_year/2014/1
输出:2014------------1

Closer 发表于 2014-10-23 10:17:00

順便問一下,他的後參數要怎麼承接呢?
因為我目前是用 GET 的方式
所以不曉得這種 $1 $2 該如何使用

jiyi_1990 发表于 2014-10-23 12:41:56

IvanCI 发表于 2014-10-23 09:46
不是路由不匹配, 是因为你程序内没有处理好page这个问题... 在获取page时候1一般是不作用的所以需要你判 ...

可是路由匹配不到,怎么去判断呢?

jiyi_1990 发表于 2014-10-23 12:42:27

一叶扁舟 发表于 2014-10-23 08:11
所有路由信息都贴出来看看

路由全都注释了 只留下这两个了!~

jiyi_1990 发表于 2014-10-23 12:43:29

阿呆 发表于 2014-10-23 10:14
经测试,代码没问题。。。。

http://localhost/ci/index.php/news/2014/1.html


咦?你是只留了一个路由匹配?就可以匹配到吗?我现在已经改了分页符的连接方式,把/改成了-
页: [1]
查看完整版本: 急急急!新手求助一个关于CI路由的问题!