그누보드 도메인 표준화 및 HTTPS 강제 설정 방법
페이지 정보

본문
그누보드 운영 시 HTTP 접속을 HTTPS로 강제 전환하고 www 유무에 따른 도메인 주소를 통일하는 구체적인 서버(.htaccess) 및 PHP 설정 방법을 제공합니다.
아파치 서버(.htaccess)를 이용한 HTTPS 강제 설정 방법
웹 서버에 SSL(보안인증서)을 설치하더라도 기존 접속 경로는 계속 HTTP로 접근하기 때문에, HTTPS를 기본으로 사용하려면 HTTP로 들어오는 요청을 HTTPS로 강제 전환(301 리다이렉트)하는 설정을 추가해야 합니다.
1. 사전 확인 사항
- 본 가이드는 서버에 SSL 인증서 설치가 완료되어
https://도메인으로 접근 가능한 상태에서만 활용해야 합니다. - 중복 적용 시 무한 리다이렉트가 발생할 수 있으니 주의하세요.
2..htaccess 설정 방법
호스팅 계정의 최상단 디렉터리에 위치한 .htaccess 파일을 열어 RewriteEngine On 설정과 함께 아래의 코드를 추가합니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS}!=on
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</IfModule>
3. 호스팅 환경별 주의 사항
- 카페24 등 특정 호스팅 환경: 기본 리다이렉트 규칙만 적용할 경우 앞단 프록시 설정이나 서버 환경에 따라
%{HTTPS}변수가 항상 "off"로 인식되어 무한 루프(ERR_TOO_MANY_REDIRECTS)가 발생할 수 있습니다. 이 경우 카페24 환경에 맞는 아래와 같은 규칙을 적용할 수 있습니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS}!=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</IfModule>
4. 적용 후 확인 방법
- 브라우저에서
http://로 시작하는 주소로 접속했을 때https://로 자동 전환되는지 확인합니다. - 주소창의 보안 자물쇠 아이콘이 정상적으로 표시되는지 확인합니다.
HTTPS 강제 설정 시 무한 루프(ERRTOOMANY_REDIRECTS) 해결 방법
카페24 등 일부 호스팅 환경에서는 아파치(Apache) 서버의 % {HTTPS} 변수가 항상 off로 인식되거나, 프록시 환경의 구조적 차이로 인해 HTTPS 접속 여부를 올바르게 판별하지 못해 무한 리다이렉트 루프가 발생할 수 있습니다.
1. 원인 확인
- 서버 환경에 맞지 않는 일반적인
RewriteCond %{HTTPS} off규칙만 사용할 경우, 이미 HTTPS로 접속한 상태임에도 조건이 계속 참으로 판별되어 무한 새로고침(백색 먹통 또는ERR_TOO_MANY_REDIRECTS)이 발생합니다. - PHP 7.3 및 7.4 버전 환경 등 일부 호스팅 사양에서는 301 리디렉션 동작이 정상 지원되지 않아 문제가 생길 수 있습니다.
2..htaccess 설정 변경 방법
아파치 서버의 .htaccess 파일에서 서버 변수뿐만 아니라 앞단 프록시가 전달하는 X-Forwarded-Proto 헤더를 함께 확인하도록 조건을 추가해야 합니다.
웹사이트 루트 디렉터리에 있는 .htaccess 파일을 열고 기존 리다이렉트 규칙을 아래 코드로 수정합니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# 1) 직접 HTTPS로 오지 않았고
RewriteCond %{HTTPS}!=on
# 2) 앞단 프록시(X-Forwarded-Proto 헤더)로도 HTTPS로 오지 않았을 때만 리다이렉트
RewriteCond %{HTTP:X-Forwarded-Proto}!https
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
</IfModule>
3. PHP 환경 점검 및 주의사항
- 중복 적용 금지:
.htaccess파일과 PHP 스크립트(예:common.php또는user_config.php) 등에 리다이렉트 규칙을 여러 곳에 중복으로 적용하면 무한 루프가 발생할 수 있으므로 한 곳에서만 명확하게 설정해야 합니다. - PHP 7.3 또는 7.4 버전을 사용하는 카페24 호스팅 등에서 301 리디렉션으로 인해 문제가 지속될 경우, PHP 버전 변경(PHP 7.0 또는 PHP 8 이상)을 고려하거나 호스팅 사양에 맞는 설정 방식을 확인해야 합니다.
서버 설정 변경이 어려울 때 PHP를 통한 HTTPS 리다이렉트 방법
아파치 서버의 .htaccess 파일을 수정할 수 없는 환경인 경우, 그누보드 설정 파일과 공통 파일을 수정하여 PHP 코드로 HTTPS 접속을 강제할 수 있습니다.
1. config.php 설정
config.php 파일에서 HTTPS 도메인 상수를 정의합니다.
define('G5_DOMAIN', '');
define('G5_HTTPS_DOMAIN', 'https://도메인.com');
2. common.php 파일 수정
common.php 파일 내부에서 config.php가 인클루드된 직후에 아래의 리다이렉트 코드를 추가합니다.
//https접속이 아닐때 강제로 리다이렉트 or 기존 도메인 접속시 리다이렉트
if(!$_SERVER['HTTPS'] || $_SERVER["HTTP_HOST"]!= '도메인.com'){
echo"<meta http-equiv='refresh' content='0;url=".G5_HTTPS_DOMAIN.$_SERVER['REQUEST_URI']."'>";
}
도메인 주소의 통일을 위해 www를 강제로 추가하거나 제거하는 규칙은 웹 서버 환경에 따라 다르게 설정할 수 있습니다. 검색 엔진 최적화(SEO)를 위해 도메인을 단일화하는 것이 권장됩니다.
1. Apache 서버 (.htaccess)
호스팅 계정의 루트 디렉터리에 있는 .htaccess 파일에 RewriteEngine을 사용하여 규칙을 작성합니다.
- www 강제 제거 예시:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
</IfModule>
- www 강제 추가 예시:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST}!^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
</IfModule>
2. PHP 스크립트 활용 (common.php)
서버 설정을 변경하기 어렵거나 그누보드 환경에서 제어할 경우, common.php 상단에 PHP 코드를 삽입하여 처리할 수 있습니다. $_SERVER['HTTP_HOST'] 값을 확인하여 www 포함 여부에 따라 header('Location:...')으로 리다이렉트합니다.
3. 주의사항
- 무한 루프 방지: 리다이렉트 규칙이 서로 충돌하거나,
http에서https로 이동하는 규칙과www통합 규칙이 겹치면 무한 루프가 발생할 수 있습니다. 방향을 하나로 정하고 순서를 조정하십시오. - 캐시 문제: 설정 변경 후에도 브라우저가 이전 설정을 기억할 수 있으므로, 시크릿 모드에서 테스트하거나 브라우저 캐시를 삭제한 후 확인하십시오.
상황별 판단 가이드
- 내 상황: Apache 서버 또는 그누보드 환경에서 SSL 인증서를 설치했으나
http://로 접속되거나 주소가 통일되지 않는 경우 - 선택 기준: 서버 설정(.htaccess) 권한 보유 여부 및 특정 호스팅(예: 카페24) 프록시 환경 고려
- 다음 행동:
- 서버 설정을 직접 수정할 수 있다면 루트 디렉터리의
.htaccess파일에RewriteEngine규칙을 적용합니다. - 카페24 등 프록시 환경으로 인해 무한 루프가 발생하면
%{HTTPS}!=on조건과 함께X-Forwarded-Proto헤더 검사 규칙을 추가합니다. - 서버 설정 변경이 불가한 경우 그누보드
common.php또는config.php상단에 PHP 리다이렉트 코드를 적용합니다.
- 서버 설정을 직접 수정할 수 있다면 루트 디렉터리의
실전 FAQ
Q..htaccess에 HTTPS 강제 코드를 넣었는데 사이트가 무한 새로고침되며 접속되지 않습니다.
- 원인과 예외: 카페24 등 일부 호스팅 환경에서는 앞단 프록시가 요청을 처리하여 Apache의
%{HTTPS}변수가 항상off로 인식되므로 이미 HTTPS로 접속한 상태에서도 리다이렉트 조건이 참이 되어 무한 루프가 발생합니다. - 대안과 해결:
.htaccess파일에RewriteCond %{HTTP:X-Forwarded-Proto}!https조건을 함께 추가하여 프록시 환경에서의 중복 리다이렉트를 방지합니다.
Q. 서버 설정 파일(.htaccess)을 수정할 권한이 없을 때는 어떻게 해야 하나요?
- 원인과 예외: 웹 서버 설정에 접근할 수 없는 공유 호스팅 환경이 해당됩니다.
- 대안과 해결: 그누보드 설치 경로의
config.php에G5_HTTPS_DOMAIN을 설정하고,common.php파일 상단에서$_SERVER['HTTPS']또는HTTP_HOST를 확인하여 PHP 스크립트 기반으로 리다이렉트를 처리합니다.
참고자료
기타 참고자료
- sir.kr — https 리다이렉트 시도 중 사이트 백색 무한로딩(?)먹통 - SIR - 개발자 커뮤니티
- velog.io — HTTP → HTTPS 리디렉션 무한루프 해결
- andabro.tistory.com — 리디렉션이 너무 많습니다 ERRTOOMANY_REDIRECTS 해결법
- sir.kr — .htaccess 리다이렉을 이용하려고 하는데 http , www 에서 https로 넘어가지 않습니다... - SIR - 개발자 커뮤니티
- help.cafe24.com — 보안인증서를 설치했는데 HTTP로 접속됩니다. 어떻게 HTTPS로 리다이렉트하나요? | Cafe24 호스팅
- thewordcracker.com — 카페24 웹호스팅: 301 리디렉션 문제 - 워드프레스 정보꾸러미
- 이전글그누보드5 설치 시 PHP 버전 불일치로 인한 문법 에러 해결 26.09.24
- 다음글그누보드 반응형 웹에서 이미지맵(imageMap) 링크 영역 유지하는 방법 26.09.24
댓글목록
등록된 댓글이 없습니다.