wpcolor 发表于 2018-9-28 10:58:12

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

设置:$route['(:any)/(.*)'] = '/show/contents/$1/$2';
结果:
            index.php/1/2      ==>ok

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

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


谢谢。

wpcolor 发表于 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...

Hex 发表于 2018-9-28 11:34:52

多写一个 (:any)/ 试试。。。。。

wpcolor 发表于 2018-9-28 14:53:26

搞定,其实也挺简单的, 注意下顺序,和多加一个匹配。多谢版主。

// --- 自定义 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/
页: [1]
查看完整版本: 路由设置(:any)/(.*) 第2段为空路由不到