본문 바로가기

Yii Framework/블로그 만들기

19. URL 아름답게..

이 곳은 제가 개인적으로 YII framework의 블로그 만들기를 번역해 놓은 곳입니다.

제가 영어 전공자도.. 그렇다고 영어랑 친하지도 않습니다. 

그래서 보시면 뭔가 글도 엉성하고 말이 안맞는게 많습니다.

잘못 오역된 부분이라던지 그런 부분들 친절하게 알려주시면 바로 수정하겠습니다.

이 페지의 원글 http://www.yiiframework.com/doc/blog/1.1/en/final.url



URL 아름답게 하기

지금은 블로그 애플리케이션의 다양한 페이지를 링크 된 URL은 형편없는 것입니다. 예를 들어, 게시물을 표시하는 페이지의 URL은 다음과 같이되어 있습니다 

/index.php?r=post/show&id=1&title=A+Test+Post

이 섹션에서는 이러한 URL을보기 좋은 SEO-friendly 방법을 설명합니다. 목표는 응용 프로그램에서 다음과 같은 URL을 사용할 수있게하는 것입니다 

  1. /index.php/posts/yii : yii 라는 태그가있는 문서 목록을 표시하는 페이지로이 연결됩니다.
  2. /index.php/post/2/A+Test+Post : ID가 2이고, 제목이 A Test Post 인 문서 내용을 표시하는 페이지로이 연결됩니다.
  3. /index.php/post/update?id=1 : ID가 1 인 기사의 업데이트를 허용하는 페이지로이 연결됩니다.

두 번째 URL 형식에서는 URL에 기사 제목을 포함하고있는 것에 주목하십시오. 이는 주로 URL을 SEO friendly 하기위한 것입니다. 검색 엔진은 색인 작성 중에 URL에 포함 된 단어도 볼 수 있다고합니다.

목적을 달성하기 위해서는 응용 프로그램 초기 구성 을 아래와 같이 수정합니다.
return array(
    ......
    'components'=>array(
        ......
        'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                'post/<id:\d+>/<title:.*?>'=>'post/view',
                'posts/<tag:.*?>'=>'post/index',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),
    ),
);

위에서, urlManager 구성 요소의 구성을 변경하고 urlFormat 속성을 path 로 설정하고 일련의 rules 를 추가합니다.

urlManager 이 규칙을 사용하여 우리가 원하는 형식의 URL을 해석하고, 또한 생성합니다. 예를 들어, 두 번째 규칙은  /index.php/posts/yii 라는 URL이 요청 된 경우에는 urlManager 이 요청을 post/index 라는루트 (route) 에 전달하여 yii 라는 값 tag 는 GET 인수 를 생성하는 것을 말합니다. 또 한편으로는 post/index 라는 루트와 tag 인자로 URL을 생성하는 경우에도 urlManager 구성 요소는이 규칙을 사용하여 우리가 원하는 /index.php/posts/yii 하는 URL을 생성할수 있습니다. 이 같은 것이기 때문에, 우리는 urlManager는 양방향 URL 매니저라고합니다.

urlManager 구성 요소는 URL에서 index.php 를 보이지 않게하거나 . html 과 같은 확장자를 URL에 추가하거나하여 URL의 모양을 더 잘 할 수 있습니다. 이 기능은 어플리케이션에 초기 구성에서 urlManager 의 다양한 속성을 구성하면 쉽게 손에 넣을 수 있습니다. 자세한 내용은 가이드 를 참조하십시오.