-
[CodeIgniter] 기본 URL 설정프로그래밍/CodeIgniter 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';
저렇게 설정되어 있다고 해도, 사이트를 접근할 수 있는 방법은 한가지 아닙니다.
- http://www.example.com
- https://www.example.com (SSL이 설치된 경우)
- 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']);
위에처럼 설정하면 좋은 점을 간단히 정리하도록 하겠습니다.
- 사이트에 사용자가 접근한 프로토콜이 http, https인 경우 모두 정상 동작합니다.
- 사이트에 도메인이 변경되도 수동으로 작업이 필요 없습니다.
▶마치며
이전에 코드이그나이터 URL 헬퍼를 알아봤기 때문에,
그와 관련된 내용을 간단히 정리했습니다.
'프로그래밍 > CodeIgniter' 카테고리의 다른 글
[CodeIgniter] IP 주소 가져오기 (Input 확장) (0) 2019.01.22 [CodeIgniter] URL 헬퍼 (URL Helper) (0) 2019.01.22 [CodeIgniter] URL 규칙과 URI 가져오기 (0) 2019.01.22 [CodeIgniter] 로그 파일 분리하기 (로그 확장) (0) 2019.01.19 [CodeIgniter] 로그(Log) 기록하기 (0) 2019.01.15