路由模式
普通模式
关闭路由,完全使用默认的PATH_INFO方式URL:
//config.php
'url_route_on' => false,
路由关闭后,不会解析任何路由规则,采用默认的PATH_INFO 模式访问URL:
http://serverName/index.php/module/controller/action/param/value/...
但仍然可以通过操作方法的参数绑定、空控制器和空操作等特性实现URL地址的简化。
可以设置url_param_type配置参数来改变pathinfo模式下面的参数获取方式,默认是按名称成对解析,支持按照顺序解析变量,只需要更改为:
// 按照顺序解析变量
'url_param_type' => 1,
混合模式
强制模式
组合变量
如果你的路由规则比较特殊,可以在路由定义的时候使用组合变量。
例如:
Route::get('item-<name>-<id>','product/detail',[],['name'=>'\w+','id'=>'\d+']);
组合变量的优势是路由规则中没有固定的分隔符,可以随意组合需要的变量规则,例如路由规则改成如下一样可以支持:
Route::get('item<name><id>','product/detail',[],['name'=>'[a-zA-Z]+','id'=>'\d+']);
Route::get('item@<name>-<id>','product/detail',[],['name'=>'\w+','id'=>'\d+']);
如果需要使用可选变量,则可以使用:
//-? 参数前分隔符可选
//<id?> 参数可选
Route::get('item-<name>-?<id?>','product/detail',[],['name'=>'[a-zA-Z]+','id'=>'\d+']);