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

Rus*_*gan 2 url-routing yii

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

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

是)我有的:

  1. 配置已设置.

    'urlManager'=> array('urlFormat'=>'path','showScriptName'=> false,'rules'=> array(//规则转到此处))

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

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

$this - 是控制者.

如果我在配置中生活'规则'数组,我就会得到这个/site/test/help/me.我期待这个.

如果

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
)
Run Code Online (Sandbox Code Playgroud)

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

但如果

'rules'=>array(
    '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    '<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>/<help>',
)
Run Code Online (Sandbox Code Playgroud)

我还在/site/test?help=me.我期望看到/site/test/me

谁能帮助我?

提前致谢.

小智 6

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

'<controller:\w+>/<action:\w+>/<help:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
Run Code Online (Sandbox Code Playgroud)

规则的顺序很重要.你需要先把最详细的一个.

问候