라이믹스/라우터

개요[편집 / 원본 편집]

라이믹스 2.0 버전에 추가된 기능으로, URL을 짧고 간결하게 만들어주는 역할을 한다. 예를 들어, 일반적인 URL 구조가 <code>https://example.com/index.php?mid=board&document_srl=123</code>라면, 라우터 기능을 통해 <code>https://example.com/board/123</code>와 같이 단순화할 수 있다. 이는 사용자가 URL을 쉽게 기억하고 입력할 수 있게 해준다.

장점[편집 / 원본 편집]

간결한 URL[편집 / 원본 편집]

복잡한 쿼리 스트링을 단순한 경로로 변환하여 가독성이 높다. 예를 들어 글 작성 페이지는 <code>https://example.com/notice/write</code> 형식으로 구성되어 있어, 기존 방식인 <code>https://example.com/index.php?mid=notice&act=dispBoardWrite</code>에 비해 어떤 <code>mid</code>, <code>act</code>인지 한눈에 이해하기 쉽다.

SEO 향상[편집 / 원본 편집]

검색 엔진이 URL을 더 쉽게 인덱싱할 수 있어 검색 결과에 긍정적인 영향을 미친다. 간결한 URL은 검색 엔진 입장에서도 이해하기 쉽기 때문에, 더 높은 점수를 얻을 수 있다.

사용자 경험 개선[편집 / 원본 편집]

SEO 향상과 같은 이유로, 사용자가 URL을 쉽게 기억하고 공유할 수 있어 웹사이트의 접근성이 향상된다.

모듈화된 관리[편집 / 원본 편집]

각 모듈이 자신만의 URL 패턴을 정의할 수 있어, 다양한 기능을 독립적으로 관리할 수 있다.

사용법[편집 / 원본 편집]

사이트 적용[편집 / 원본 편집]

사이트 내에 적용하기 위해서는 관리자 페이지(<code>/admin</code>)에 들어간 후, 설정 → 시스템 설정 → 고급 설정에서, <code>짧은 주소 사용</code> 기능을 <code>모든 주소 형태를 사용</code>으로 변경한다.

이때 서드파티 모듈이나 애드온 등에서 지원하지 않는 경우에는 오류가 발생할 수 있다.[1]

nginx 적용[편집 / 원본 편집]

아파치의 경우, <code>.htaccess</code>를 사용하므로 별도로 작업할 것은 없지만, nginx의 경우에는 서버에 적용해야 한다. 우분투 기준 아래의 명령어를 입력한다.

curl https://raw.githubusercontent.com/rhymix/rhymix/master/common/manual/server_config/rhymix-nginx.conf > /etc/nginx/snippets/rhymix.conf

더 자세한 내용은 깃허브 문서를 확인하기 바랍니다.

개발자 가이드[편집 / 원본 편집]

모듈에서 라우터 사용[편집 / 원본 편집]

라우터 기능을 사용하기 위해서는 `module.xml` 파일에서 `route` 속성을 정의해야 한다. 예를 들어, 게시판 모듈에서 특정 글을 삭제하는 URL을 정의하려면 다음과 같이 설정할 수 있다.

<action name="dispBoardDelete" type="view" route="$document_srl/delete" />

이렇게 하면 <code>/board/123/delete</code>와 같은 URL을 사용할 수 있다. 또한, `<route>` 태그를 사용하면 하나의 액션에 여러 개의 짧은주소를 정의할 수 있다.

<action name="dispBoardWrite" type="view">
    <route route="write" />
    <route route="$document_srl/edit" />
</action>

위 설정을 적용하면 <code>/notice/write</code>와 <code>/notice/123/edit</code>와 같은 URL을 사용할 수 있다.

우선순위 설정[편집 / 원본 편집]

여러 개의 짧은주소가 동일한 변수들을 사용하여 충돌할 경우, `priority` 속성을 사용하여 우선순위를 지정할 수 있다.

<action name="dispBoardExample" type="view">
    <route route="downtown/$baby" priority="20" />
    <route route="hasta/la-vista/$baby" priority="10" />
</action>

우선순위가 높은 라우트가 먼저 적용된다.

404 에러 처리[편집 / 원본 편집]

라우트가 정의되지 않은 URL 요청이 들어오면, 모듈에서 404 에러 핸들러를 지정하여 사용자 친화적인 에러 페이지를 제공할 수 있다.

<action name="dispBoardNotFound" type="view" error-handlers="404" />

이렇게 설정하면 잘못된 URL이 요청될 경우 `dispBoardNotFound` 메소드가 실행된다.

전역 짧은주소 사용[편집 / 원본 편집]

mid 없이도 작동하는 기능(예: 통합검색)의 경우, `global-route="true"` 속성을 추가하여 전역 라우트를 설정할 수 있다.

<action name="IS" type="view" global-route="true">
    <route route="search" />
</action>

이를 통해 <code>https://example.com/search</code>와 같은 URL이 사용 가능하다. 다만, 전역 라우트는 다른 모듈과 충돌할 위험이 있으므로 신중하게 사용해야 한다.

문서[편집 / 원본 편집]

자세한 내용은 공식 문서를 확인하기 바랍니다.

각주[편집 / 원본 편집]

  1. 코어 모듈들은 모두 지원함.