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

uri 路由的原理 是 什么

[复制链接]
发表于 2009-1-6 15:44:23 | 显示全部楼层 |阅读模式
若我不想 让用户通过uri 片断 来 访问控制器的某些方法,可以在方法名前加 下划线 ,

但如果我是想让 用户不能直接访问 控制器类,而是通过我定义的 uri路由来访问网站 该 怎么办?

uri 路由的原理是什么,怎么实现的,

我试了下方法名前加下划线 通过uri 路由也不能访问了

那能不能实现我要的效果
发表于 2009-1-9 00:35:02 | 显示全部楼层
URL 路由的原理和 URL Rewrite 很像,就是把符合某些规则的 URL 转到另外的 URL 上。
我没有太明白楼主的意思,呵呵。
 楼主| 发表于 2009-1-9 09:14:29 | 显示全部楼层
比如:(1) example.com/class/function/ID
这里class是controller, function是方法,
我又用url路由定义了 (2)  $route['temp'] = "class/function/ID";
现在我想禁用 example.com/class/function/ID 这种访问方式,
让用户只能通过 (2) example.com/temp 来访问,
我觉得直接暴露类和方法并不是很好的设计

照楼上的意思url路由 不过是提供了另一种访问方法,
最后还是靠(1) 来访问的,似乎不能只通过(2)来访问
发表于 2009-1-9 12:50:23 | 显示全部楼层
嗯,应该是不能禁止原始的方式。

不过,暴露类名和方法为什么不好呢?

还有,可以用 _remap 来实现隐藏方法名。
发表于 2009-1-9 22:02:02 | 显示全部楼层

回复 3楼 的帖子

看一下 /system/libraries/URI.php 就明白了,其实很简单。
论坛由中文注视的 URI.php 文件。
 楼主| 发表于 2009-1-15 09:39:18 | 显示全部楼层
后来写了个入口函数index( $type = "" ),全部从那里进去再分发,和_Remap效果差不多

本版积分规则