我习惯于像一样管理我的URL
http ://abc.com/redmiprime
-->这是产品详细信息
http ://abc.com/admin
-->这是模块
我正试图使用此规则访问我的产品和模块,我无法访问我的模块。
但当我在'<url:['w-]+>' => 'product/details',
规则上添加任何前缀(如'product/<url:['w-]+>' => 'product/details',
)时
然后我可以访问模块
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
"/" => 'site/index',
'category/<url:['w-]+>' => 'product/categoryProduct',
'<controller:'w+>/<id:'d+>' => '<controller>/view',
'<controller:'w+>/<action:'w+>/<id:'d+>' => '<controller>/<action>',
'<controller:'w+>/<action:'w+>' => '<controller>/<action>',
'<url:['w-]+>' => 'product/details',
), 'showScriptName' => false,
),
这是因为在RegEx中,http ://abc.com/redmiprime
和http ://abc.com/admin
具有相同的结构,并且匹配第一个正确的路由(在您的情况下是'<url:['w-]+>' => 'product/details'
)。你需要一些前缀或一些其他关键的url部分,这告诉它是模块还是控制器:
module-admin => 'module-<module:'w+>' => '<module>/default/index'
details-redmiprime => 'details-<controller:'w+>' => '<controller>/details',