2014-09-30 2 views
0

나는이 문제에 어려움을 겪고 있으며 적절한 답변을 찾지 못했습니다.YII friendly SEO url

나는 my_site/사용자/1my_site/사용자/사용자 _ 이름에게되고 싶은 내 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), 
)); 
} 

때 나는/사용자/관리자가 actionAd으로 내 컨트롤러 및 i에서 actionAdmin으로 리디렉션합니다. 생성, 삭제 등과 같은 여러 가지 조치를 취하십시오. 어떻게 이것을 피할 수 있습니까? 대안이 있습니까?

감사합니다.

+0

URL 관리자에서 첫 번째 값은 user/이며 모든 사용자 작업은 기본적으로 해당 작업으로 돌아갑니다. URL의 사용자 부분을 manage-user 또는 그와 비슷한 것으로 변경합니다. – chaos505

답변

0

urlManager는 URL을 컨트롤러 및 동작과 일치시킵니다.

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

의 첫 번째 부분은 사용자의 컨트롤러와이 단어로 구성되어 임의의 문자열을 찾고 다음 부분 일치했다, 그때 user/<username>manage-user/<username>을로 변경하는 것이 좋습니다

사용자 /보기로 사용자에게 전송 또는 my-account/<username> 등이 있습니다.

+0

그리고 다른 컨트롤러 인 ManageUserController 또는 MyAccountController를 만들 것을 제안합니까? –

+0

아니요/의 첫 번째 부분을/과 같은 링크로 변경 한 다음 브라우저 URL에 입력하십시오. 첫 번째 부분은 일치합니다 두 번째 부분은 사용자를 보낼 위치입니다. – chaos505