我的控制器结构(api是控制器内的文件夹)
controllers/api/Api_1_0.php
controllers/api/Api_2_0.php
在我的routes.php中
$route['api/(\d+)\.(\d+)'] = "api/Api_$1_$2";
$route['api/(\d+)\.(\d+)/(:any)'] = "api/Api_$1_$2/$3";
我需要的路由策略是,如果指定 /api/2.0 ,它将指向控制器文件 Api_2_0.php
即。 api / x 。 y 指向文件Api_ x _ y .php
以上路由工作正常,但下面是我的问题:
https://www.example.com/api/2.0/photos/1234567890 // not working
https://www.example.com/api/2.0/photos // working
如何解决?
答案 0 :(得分:1)
如评论中所述,您应该更改订单。
但你也应该将(:any)改为(。*)。 (:any)只会匹配您网址的第一段。
正确的方法是:
$route['api/(\d+)\.(\d+)/(.*)'] = "api/api_$1_$2/$3";
$route['api/(\d+)\.(\d+)'] = "api/api_$1_$2";