用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2534|回复: 3
收起左侧

[已解决] 设置路由后,怎么设置控制器访问的优先权!Hex Hex 求救

[复制链接]
发表于 2010-8-19 02:07:04 | 显示全部楼层 |阅读模式
我设置了两条规则:
PHP复制代码
 
$route['([a-z]+)'] = "category/index/$1";
$route['([a-z]+)/([a-z]+)'] = "category/index/$2";
 
复制代码


访问:www.xxx.com/栏目名称 和 www.xxx.com/顶级栏目名称/栏目名称
都跳转到:category/index/栏目名称

问题:我访问www.xxx.com/控制器 的时候也调到category/index/这里去了,

有什么办法可以先访问控制器,如果控制器不存在的话再跳转到栏目页去?
发表于 2010-8-19 04:37:08 | 显示全部楼层
按你的路由设置,www.xxx.com/控制器必然要跳转到category/index/
你的第一条路由就是专门截获跳转这个的
靠设置路由不能提前检测xx控制器是否存在
要实现你的要求,我的建议是扩展system/libraries/Router.php
重写function _validate_request()
将不存在的控制器全部改成'category'
发表于 2010-8-19 09:35:02 | 显示全部楼层
楼上正解,CI默认的路由功能,是不能实现你所描述的功能的,而且你写的路由规则个人认为有些不妥,你将所有的www.xxx.com/url都转到category/index方法下了
 楼主| 发表于 2010-8-19 10:36:43 | 显示全部楼层
回复 2# visvoy
谢谢您,茅塞顿开啊,非常感谢,

本版积分规则