프로그래밍/CodeIgniter

[CodeIgniter] 기본 URL 설정

떨어지는 용 2019. 1. 22. 22:42

▶CodeIgniter 기본 URL 설정



▶설명


코드이그나이터에서 URL 헬퍼에를 사용할 때,

site_url(), base_url() 함수는 설정 파일에 저장되어 있는 기본 URL(base_url) 값을 기준으로 URL 가져옵니다.


그렇지만, 문제가 발생하는 경우가 있습니다.


▶문제점


만약 기본 URL 값이 아래와 같이 설정되어 있다고 합시다.


application/config/config.php


$config['base_url'] = 'http://www.example.com';


저렇게 설정되어 있다고 해도, 사이트를 접근할 수 있는 방법은 한가지 아닙니다.

  1. http://www.example.com
  2. https://www.example.com (SSL이 설치된 경우)
  3. http://example.com


이와 같이 다양한 로 사이트를 접근할 수 있습니다.


설정된 http://www.example.com이 아닌 다른 방법으로 사이트에 접근하는 경우,

base_url() 함수로 이미지 파일이나, CSS를 호출하면 문제가 발생할 수 있습니다.

(현재 접근한 사이트의 도메인과 파일 경로를 나타내는 도메인이 일치하지 않기 때문입니다.)


▶해결법


그러면 어떻게 설정하면 해결할 수 있을까요?

코드이그나이터 포럼에 글 중 하나에서 해결 방법을 찾을 수 있었습니다.

(출처를 찾게 되는 경우, 수정을 통하여 출처를 기재하도록 하겠습니다.)


application/config/config.php


// $config['base_url'] = 'http://www.example.com';
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://" . $_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']), "", $_SERVER['SCRIPT_NAME']);


위에처럼 설정하면 좋은 점을 간단히 정리하도록 하겠습니다.

  1. 사이트에 사용자가 접근한 프로토콜이 http, https인 경우 모두 정상 동작합니다.
  2. 사이트에 도메인이 변경되도 수동으로 작업이 필요 없습니다.


▶마치며


이전에 코드이그나이터 URL 헬퍼를 알아봤기 때문에,

그와 관련된 내용을 간단히 정리했습니다.