yii网址管理员。路径格式的网址

时间:2012-05-21 11:07:57

标签: yii url-routing

我一直在开发基于Yii框架的Web应用程序。

我在尝试制作sef网址时遇到了麻烦。

我有什么:

  1. 配置已设置。

    'urlManager'=>阵列(     '网址格式'=> '路径',     'showScriptName'=>假,     '规则'=>阵列( //规则就在这里     ) )

  2. 这是用于测试的代码:

  3. echo $this->createUrl('site/test', array('help'=>'me')

    $this - 是控制者。

    如果我在配置中生活'规则'数组,那么我得到这个/site/test/help/me。我期待这一点。

    如果

    'rules'=>array(
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    )
    

    我得到/site/test?help=me这也是预期的。

    但是如果

    'rules'=>array(
        '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        '<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>/<help>',
    )
    

    我仍然得到/site/test?help=me。我希望看到/site/test/me

    有人可以帮助我吗?

    提前致谢。

1 个答案:

答案 0 :(得分:5)

更改规则的顺序并删除<help>。它将自动添加到操作中。所以你的规则应该是这样的:

'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',

规则顺序很重要。你需要先把最详细的一个放在第一位。

此致