我正在尝试在Yii框架中设置一个页面,但是URL路由正在打破一些页面,但有些页面仍在工作。
我注意到有连字符( - )的页面和不打破的页面。
例如
/mypage/my-item (works)
/mypage/myitem (breaks)
我在其他页面上使用相同的代码,但我没有这个问题所以非常奇怪。
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
// SECTORS DOES NOT WORK
'sectors'=>'site/sectors',
'sectors/<sector:.*?>'=>'site/sectors',
// PERSPECTIVE WORKS FINE
'perspective'=>'site/perspective',
'perspective/<article:.*?>'=>'site/perspective',
),
),
如果我尝试将die()放入控制器,它仍然会抛出错误,因此由于某种原因,/ mypage / myitem URL甚至没有使它成为正确的控制器。
由于
答案 0 :(得分:1)
尝试将连字符更改为下划线怎么样?或者更好的是,将所有网址更改为单个字词;没有更多特殊字符。
答案 1 :(得分:0)
正则表达式 \ w + 不包含 - 符号。所以你的示例网址将被不同的规则解析。
答案 2 :(得分:0)
我找到了解决方案。这是URL规则的顺序。我将前三个规则移到了数组的底部并修复了它。我假设第一批在扇区/规则之前实现。