急急急!新手求助一个关于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 就找不到控制器了!
匹配不到应该是前面的路由匹配到了。 所有路由信息都贴出来看看 不是路由不匹配, 是因为你程序内没有处理好page这个问题... 在获取page时候1一般是不作用的所以需要你判断一下. 经测试,代码没问题。。。。
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 順便問一下,他的後參數要怎麼承接呢?
因為我目前是用 GET 的方式
所以不曉得這種 $1 $2 該如何使用 IvanCI 发表于 2014-10-23 09:46
不是路由不匹配, 是因为你程序内没有处理好page这个问题... 在获取page时候1一般是不作用的所以需要你判 ...
可是路由匹配不到,怎么去判断呢?
一叶扁舟 发表于 2014-10-23 08:11
所有路由信息都贴出来看看
路由全都注释了 只留下这两个了!~
阿呆 发表于 2014-10-23 10:14
经测试,代码没问题。。。。
http://localhost/ci/index.php/news/2014/1.html
咦?你是只留了一个路由匹配?就可以匹配到吗?我现在已经改了分页符的连接方式,把/改成了-
页:
[1]