如果你的路由规则比较特殊,可以在路由定义的时候使用组合变量。

例如:

route::get('item--','product/detail',[],['name'=>'\w ','id'=>'\d ']);

组合变量的优势是路由规则中没有固定的分隔符,可以随意组合需要的变量规则,例如路由规则改成如下一样可以支持:

route::get('item','product/detail',[],['name'=>'[a-za-z] ','id'=>'\d ']);
route::get('item@-','product/detail',[],['name'=>'\w ','id'=>'\d ']);

如果需要使用可选变量,则可以使用:

route::get('item-','product/detail',[],['name'=>'[a-za-z] ','id'=>'\d ']);