CodeIgniter URL 헬퍼 (URL Helper)

2023. 7. 11. 21:50카테고리 없음

반응형

설명


코드이그나이터 URL관련된 기능을 쉽게 사용 할 수 있게 도와주는 URL 헬퍼(URL Helper)에 대해 알아보도록 하겠습니다.

이 글에서는 URL 헬퍼에 함수 중 자주 사용하는 함수만을 정리했습니다.

 

자세한 내용은 아래의 링크를 참고하시기 바랍니다.

 

▶URL 헬퍼 로드


URL 헬퍼를 로드하는 방법은 간단합니다.

 

$this->load->helper('url');

 

그렇지만, 모든 사용하고자 하는 코드에서 개별로 로드하고 싶지 않다면,

아래와 같이 자동으로 로드하도록 처리하면 됩니다.

 

application/config/autoload.php

 

// $autoload['helper'] = array();
$autoload['helper'] = array('url');

 

헬퍼 자동 로드 목록에 URL 헬퍼를 추가하시면 됩니다.

이제는 URL 헬퍼 로드에 관해 신경쓰지 않아도 됩니다.

 

▶site_url 함수


설정 파일에서 설정된 사이트의 URL을 반환합니다.

 

사용법

 

강조 처리된 부분만 필수 사항입니다.

 

site_url(새그먼트 = '', 프로토콜 = NULL)

 

URL에는 새그먼트를 전달할 수도 있습니다.

 

새그먼트 빈 값

코드

echo site_url();

 

새그먼트 문자열

코드

echo site_url('news/local/123');

 

새그먼트 문자열 (index.php가 제거된 경우)

코드

echo site_url('news/local/123');

 

새그먼트 배열

코드

$segments = array('news', 'global', '123');
echo site_url($segments);

 

▶base_url 함수


설정 파일에서 설정된 사이트의 URL을 반환하는 함수입니다.

 

사용법

 

강조 처리된 부분만 필수 사항입니다.

 

base_url(새그먼트 = '', 프로토콜 = NULL)

 

URL에는 새그먼트를 전달할 수도 있습니다.

 

이렇게까지만 보면 site_url 함수와 동일해 보이지만,

base_url 함수는 index.page와 url_suffix를 제외하고 반환합니다.

 

그렇기 때문에 site_url 함수보다 이미지나 CSS 같은 파일에 경로를 받는데 사용할 수 있습니다.

(물론 site_url도 index.php를 제거하면, 하위 경로에 관해 비슷하게 동작하기 때문에 문제가 되지는 않습니다.)

 

새그먼트 빈 값

코드

echo base_url();

 

새그먼트 문자열

코드

echo base_url('news/local/123');

 

새그먼트 배열

코드

$segments = array('news', 'global', '123');
echo base_url($segments);

 

Asset 가져오기

코드

echo base_url('assets/images/profile.png');

결과

http://example/assets/images/profile.png

 

▶current_url 함수


현재 페이지의 전체 URL (새그먼트 포함)을 반환하는 함수입니다.

 

사용법

 

강조 처리된 부분만 필수 사항입니다.

 

current_url()

 

기본

코드

echo current_url();

 

동일한 기능

코드

echo site_url(uri_string());

 

▶uri_string 함수


현재 페이지의 URI 새그먼트를 반환하는 함수입니다.

 

사용법

 

강조 처리된 부분만 필수 사항입니다.

 

uri_string()

 

기본

코드

echo uri_string();

결과

news/local/123

 

▶redirect 함수


페이지를 지정한 경로로 리디렉트 해주는 함수입니다.

 

사용법

 

강조 처리된 부분만 필수 사항입니다.

 

redirect(새그먼트 = '', 메서드= '', 코드 = NULL)

 

"header redirect"를 수행합니다.

  • 첫 번째 파라미터는 코드이그나이터 내부의 새그먼트를 넣으면 됩니다. (외부 사이트에 경우 URL 전체를 넣어야 합니다.)
  • 옵션인 두 번째 파라미터는 auto, location. refresh 메서드 중 하나를 선택할 수 있습니다. (Location은 더 빠르게 동작하지만 윈도우 서버에서 문제가 발생할 수 있습니다.)
  • 옵션인 세 번째 파라미터는 location 리디렉트를 사용할 경우에만 가능합니다.
  • 옵션인 세 번째 파라미터는 HTTP 응답 코드를 지정할 수 있습니다. (기본 응답코드는 302입니다.)

 

기본

코드

redirect('/article/13');

 

redirect - location

코드

redirect('/article/13', 'location');

 

redirect - refresh

코드

redirect('/article/13', 'refresh');

 

redirect - 응답코드 301

코드

redirect('/article/13', 'location', 301);

 

반응형