Yii无法解决某些网址的请求,但不是全部

时间:2014-04-09 23:51:24

标签: php url yii

我正在尝试在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甚至没有使它成为正确的控制器。

由于

3 个答案:

答案 0 :(得分:1)

尝试将连字符更改为下划线怎么样?或者更好的是,将所有网址更改为单个字词;没有更多特殊字符。

答案 1 :(得分:0)

正则表达式 \ w + 不包含 - 符号。所以你的示例网址将被不同的规则解析。

答案 2 :(得分:0)

我找到了解决方案。这是URL规则的顺序。我将前三个规则移到了数组的底部并修复了它。我假设第一批在扇区/规则之前实现。

相关问题