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

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

본문 바로가기

사이트 내 전체검색

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

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

페이지 정보


본문

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


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

[ 방법.1 ] 그누보드 / common.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,641건 30 페이지
  • RSS
기술자료 목록
2061
SNS   13794  2017-08-31 18:31  
2060
etc쇼핑몰   10256  2017-08-31 16:57  
2059
SNS   10921  2017-08-31 15:28  
열람
그누보드   19336  2017-08-31 14:34 ~ 2023-04-17 13:00  
2057
ClassicASP   12186  2017-08-30 07:34 ~ 2021-02-26 16:47  
2056
Adobe   16716  2017-08-29 17:50 ~ 2017-09-02 00:00  
2055
Linux   11596  2017-08-26 03:32 ~ 2017-10-30 23:05  
2054
Linux   15699  2017-08-26 00:44 ~ 2017-08-26 00:00  
2053
Linux   16636  2017-08-26 00:30 ~ 2017-08-26 00:00  
2052
WordPress   9915  2017-08-23 04:24  
2051
MySQL   16515  2017-08-22 02:39 ~ 2017-08-22 00:00  
2050
그누보드   9834  2017-08-22 02:32 ~ 2017-08-22 00:00  
2049
그누보드   14174  2017-08-22 02:26 ~ 2021-06-23 13:35  
2048
SNS   42294  2017-08-21 17:54 ~ 2017-08-24 00:00  
2047
MySQL   28220  2017-08-17 14:16  
2046
etc보드   10338  2017-08-17 13:53  
2045
etc보드   17293  2017-08-17 04:28 ~ 2017-08-17 00:00  
2044
일반   12929  2017-08-16 14:14 ~ 2023-04-03 23:59  
2043
Linux   19325  2017-08-11 13:06  
2042
etc보드   10515  2017-08-11 06:07 ~ 2017-08-11 00:00  

검색

해피정닷컴 정보

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

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