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

[URL] 路由设置(:any)/(.*) 第2段为空路由不到

[复制链接]
发表于 2018-9-28 10:58:12 | 显示全部楼层 |阅读模式
设置:
PHP复制代码
$route['(:any)/(.*)'] = '/show/contents/$1/$2';
复制代码

结果:
            index.php/1/2        ==>ok

            index.php/1/          ==> 404
            index.php/1/2/3    这个不用管,只作为示例

重点:   想   index.php/1/    匹配到我定义的控制器中,这个路由该怎么写?


谢谢。
 楼主| 发表于 2018-9-28 11:13:08 | 显示全部楼层
本帖最后由 wpcolor 于 2018-9-28 11:23 编辑

如果设置:  $route['(:any)'] = '/show/contents/$1';          是可以匹配:  /1/   

但第1段,还有别的路由规则。 比如 *.html -> 控制器A    *.php  -> 控制器B
这样的话,会不会冲突? 还是那条规则放前面,先匹配到了就执行?


目的就是:  有2段 的URL 到自定义的控制器A   
1段的,根据后缀情况,分别到其他控制器BCD...
发表于 2018-9-28 11:34:52 | 显示全部楼层
多写一个 (:any)/ 试试。。。。。
 楼主| 发表于 2018-9-28 14:53:26 | 显示全部楼层
搞定,其实也挺简单的, 注意下顺序,和多加一个匹配。  多谢版主。

PHP复制代码
// --- 自定义 routes 注意顺序不能乱---
$route['(:any)\.html'] = '/show/index/$1';    //  匹配:/xxx.html
 
$route['(:any)/(.*)'] = '/show/contents/$1/$2';    // 匹配:/xxx/yyy
$route['(:any)']      = '/show/contents/$1';   // 匹配: /xxx   or    /xxx/
复制代码

本版积分规则