ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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';


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

    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 헬퍼를 알아봤기 때문에,

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


    댓글

Designed by Tistory.