2014-09-30 161 views
0

我正在努力解決這個問題,並沒有找到任何合適的答案。YII友好的SEO網址

我想my_site /用戶/ 1成爲my_site /用戶/ 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), 
)); 
} 

當我打/ /用戶/管理它重定向到actionView不從我的控制器和我的actionAdmin有多個這樣的動作,如創建,刪除等。 我該如何避免這種情況?有其他選擇嗎?

謝謝。

+0

在URL管理器中,第一個值是用戶/ 任何用戶操作都會默認回到該操作。我會更改URL的用戶部分來管理用戶或類似的東西 – chaos505 2014-09-30 07:50:31

回答

0

urlManager嘗試將url與控制器和操作進行匹配。 的

'user/<username:\w+>'=>'user/view', 

所述第一部分具有匹配所述用戶控制器,它尋找它由字的任何串的下一部分,然後發送的用戶到用戶/視圖

我建議改變user/<username>manage-user/<username>my-account/<username>,類似的東西。

+0

並且您建議創建另一個控制器ManageUserController或MyAccountController? – 2014-09-30 08:12:19

+0

不,只是將用戶的第一部分/ 更改爲您想要的任何鏈接/ 然後在瀏覽器URL中鍵入該鏈接。 第一部分是比賽第二部分是在哪裏發送用戶 – chaos505 2014-09-30 08:13:41