[G5] http:// 도메인에 www 를 무조건 넣거나 빼기 & https:// 로 이동하기 (포워딩) > 기술자료 | 해피정닷컴

[G5] http:// 도메인에 www 를 무조건 넣거나 빼기 & https:// 로 이동하기 (포워딩) > 기술자료

본문 바로가기

사이트 내 전체검색

[G5] http:// 도메인에 www 를 무조건 넣거나 빼기 & https:// 로 이동하기 (포워딩) > 기술자료

그누보드 [G5] http:// 도메인에 www 를 무조건 넣거나 빼기 & https:// 로 이동하기 (포워딩)

페이지 정보


본문

php로 common.php 첫줄에서 실행하는 방법입니다
다른 곳에서 하면 그누보드에서 사용하는 lib화일들을 모두 로드한 후 실행하기 때문에 http인지 https인지 구분에 오류가 있을수 있습니다
 
그누보드 / common.php 또는  config.php 의 <?php  아래에 넣습니다
아래 3가지 내용중 원하는 방식의 것을 적용하세요


1. www 붙이면서 https 로 이동하기
아래 2가지 방법중에서 선택적으로 하나만 적용합니다

[ 방법.1 ] 그누보드 / common.php 또는 config.php 의 <?php  아래에 넣습니다
[ 방법.1-1 ] 
// www 붙이면서 https 로 이동하기
if((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')) { // https: 일때
    if(strpos($_SERVER['HTTP_HOST'],'www.') === false) {
        $https_goto_url = 'https://www.'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_goto_url}");
    }
} elseif((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') || !(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')) { // http: 일때
    if(strpos($_SERVER['HTTP_HOST'],'www.') === false) { // www 없으면 www 추가하고 http:// 연결
        $https_goto_url = 'https://www.'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_goto_url}");
    } elseif(strpos($_SERVER['HTTP_HOST'],'www.') !== false) { // www 있으면 그냥 https:// 연결
        $https_goto_url = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_goto_url}");
    }
}


[ 방법.1-2 ] 2023-04-14 새로 만든 방법
// www 붙이면서 https 로 이동하기 시작
// https: 일때
if((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')) {
    if(strpos($_SERVER['HTTP_HOST'],'www.') === false) {
        $https_forwarded_url = "https://www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_forwarded_url}");
    }
}
// http: 일때
elseif((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') || !(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')) {
    // www 있으면
    if(strpos($_SERVER['HTTP_HOST'],'www.') !== false) {
        $https_forwarded_url = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_forwarded_url}");
    }
    // www 없으면
    else {
        $https_forwarded_url = "https://www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_forwarded_url}");
    }
}
// www 붙이면서 https 로 이동하기 끝


[ 방법.2] 그누보드 / theme / basic / head.sub.php 상단에 넣기
// https 로 이동하면 www 추가 이동하기
$https_goto_url = "";
if (!preg_match('/www/', $_SERVER['SERVER_NAME']) == true) { // www 없을때
    if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "on"){
        $ssl_port = "";  //  443 포트를 사용하지 않는경우에 이용할 포트번호 입력
        if ($ssl_port == "") { 
            $https_goto_url = "https://www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        } else {
            $https_goto_url = "https://www.".$_SERVER['HTTP_HOST'].":".$ssl_port.$_SERVER['REQUEST_URI'];
        }
    
        // php 문서 최상단에 위치해야 정상 작동
        //header("Location: ".$https_goto_url);
        
        echo "<script>\n";
        echo "location.href = '{$https_goto_url}';\n";  // 현재창으로 전송
        //echo "parent.location.href='{$https_goto_url}';\n";  // 부모창으로 전송
        echo "</script>\n";
    }
} else { // www 있을때
    if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "on"){
        $ssl_port = "";  //  443 포트를 사용하지 않는경우에 이용할 포트번호 입력
        if ($ssl_port == "") { 
            $https_goto_url = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        } else {
            $https_goto_url = "https://".$_SERVER['HTTP_HOST'].":".$ssl_port.$_SERVER['REQUEST_URI'];
        }
        
        // php 문서 최상단에 위치해야 정상 작동
        //header("Location: ".$https_goto_url);
        
        echo "<script>\n";
        echo "location.href = '{$https_goto_url}';\n";  // 현재창으로 전송
        //echo "parent.location.href='{$https_goto_url}';\n";  // 부모창으로 전송
        echo "</script>\n";
    }
}
//echo "https 로 이동하면 www 추가 이동하기<br>";
//echo $https_goto_url ."<br><br>";



2. www 제거하고 https 로 이동하기
// www 제거하고 https 로 이동하기
if((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')) { // https: 일때
    if(strpos($_SERVER['HTTP_HOST'],'www.') !== false) {
        $https_goto_url = 'https://'.str_replace("www.", "", $_SERVER['HTTP_HOST']).$_SERVER['REQUEST_URI'];
        header("Location:{$https_goto_url}");
    }
} elseif((isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') || !(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on')) { // http: 일때
    if(strpos($_SERVER['HTTP_HOST'],'www.') !== false) { // www 있으면 www 빼고 https:// 연결
        $https_goto_url = 'https://'.str_replace("www.", "", $_SERVER['HTTP_HOST']).$_SERVER['REQUEST_URI'];
        header("Location:{$https_goto_url}");
    } elseif(strpos($_SERVER['HTTP_HOST'],'www.') === false) { // www 없으면 그냥 https:// 연결
        $https_goto_url = 'https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
        header("Location:{$https_goto_url}");
    }
}



3. 서브도메인.cafe24.com 을 www.도메인.com 으로 바꾸면서 https 로 이동하기
https://www.happyjung.com/lecture/3223 으로 강좌를 이동해서 새롭게 등록 했습니다.



참고자료
https://sir.kr/g5_tip/15414
https://m.blog.naver.com/awspro/221904637678
https://stackoverflow.com/questions/8830060/notice-undefined-index-http-x-forwarded-proto-in-c-users-me-project-index-php

댓글목록

profile_image

가로수님의 댓글

가로수 이름으로 검색 작성일

감사합니다.
덕분에 잘 적용하였습니다.^^

profile_image

관리자1님의 댓글의 댓글

관리자1 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일

도움되었다니 기쁩니다~~


Total 2,644건 1 페이지
  • RSS
기술자료 목록
2644
MySQL   57  2025-08-28 17:54 ~ 2025-08-28 17:55  
2643
PHP   1193  2025-02-07 09:27 ~ 2025-02-07 16:59  
2642
그누보드   1095  2025-02-07 08:55 ~ 2025-02-07 17:04  
2641
그누보드   1370  2024-11-26 21:14 ~ 2024-11-26 21:22  
2640
그누보드   1564  2024-11-22 10:52 ~ 2024-11-22 11:03  
2639
호스팅   1524  2024-11-19 14:41 ~ 2024-11-19 21:17  
2638
Linux   1166  2024-11-18 15:45 ~ 2024-11-18 15:48  
2637
일반   1113  2024-11-15 16:45 ~ 2024-11-15 16:46  
2636
Secure   1154  2024-11-06 18:48 ~ 2024-11-06 18:50  
2635
영카트   1459  2024-10-21 13:44 ~ 2025-08-29 23:40  
2634
전자결제   2484  2024-09-05 09:30  
2633
MySQL   2040  2024-03-29 14:14 ~ 2024-03-29 14:14  
2632
그누보드   2251  2024-02-23 18:40 ~ 2024-02-24 06:13  
2631
JavaScript   2340  2024-02-16 18:50 ~ 2024-02-16 20:37  
2630
Java   2405  2024-02-06 16:49  
2629
PHP   2670  2024-02-06 16:42  
2628
호스팅   2119  2024-01-29 12:54  
2627
PHP   2018  2024-01-26 11:04 ~ 2024-01-26 11:13  
2626
MySQL   2159  2024-01-08 17:37 ~ 2024-03-14 16:00  
2625
SQL   2478  2024-01-08 12:36  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.