YII友好的SEO网址

时间:2014-09-30 07:08:00

标签: php yii

我正在努力解决这个问题而没有找到合适的答案。

我希望 my_site / user / 1 成为 my_site / user / user_name

我的urlManager看起来像这样:

'urlManager' => array(
  'urlFormat' => 'path',
  'rules' => array(
    'user/<username:\w+>'=>'user/view',
    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
  ),
  'showScriptName' => false,
),

用户控制器:

public function actionView($username)
{
  $this->render('view', array(
    'model' => $this->loadModel($username),
  ));
}

当我点击/ user / admin时,它将我重定向到actionView而不是我的控制器中的actionAdmin,我有多个这样的动作,如创建,删除等。 我怎么能避免这个?还有其他选择吗?

感谢。

1 个答案:

答案 0 :(得分:0)

urlManager尝试将url与控制器和操作相匹配。

的第一部分
'user/<username:\w+>'=>'user/view',

已与用户控制器匹配,下一部分则查找包含单词的任何字符串,然后将用户发送给用户/视图

我建议将user/<username>更改为manage-user/<username>my-account/<username>,类似于此。

相关问题