https 리다이렉션 -> 리다이렉션 횟수가 너무 많습니다 ㅠㅠ

https 리다이렉션 -> 리다이렉션 횟수가 너무 많습니다 ㅠㅠ

QA

https 리다이렉션 -> 리다이렉션 횟수가 너무 많습니다 ㅠㅠ

답변 2

본문

안녕하세요.

SSL보안인증서를 설치하고 https로만 접속하려고 리다이렉션 처리를 하니

횟수가 너무 많다고 페이지가 뜨지 않는데요.ㅠㅠ

 

어떤분이 올려주신건데

/extend/user.config.php 파일 상단에 

if (strpos(G5_URL, "http://") !== false) goto_url(str_replace("http://", "https://", G5_URL).$_SERVER['REQUEST_URI']);

 

위 소스를 추가하여 https 리다이렉션을 하는것입니다.

이 소스가 문제가 있는 소스일까요?

 

이 질문에 댓글 쓰기 :

답변 2

웹 서버 (예: Apache 또는 Nginx)의 설정을 통해 HTTPS로 리다이렉트할 수도 있습니다.

예를 들어, Apache의 .htaccess 파일에 다음과 같은 룰을 추가하여 모든 HTTP 요청을 HTTPS로 리다이렉트할 수 있습니다.


RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

이 방법은 서버 수준에서 리다이렉트를 처리하기 때문에 PHP 코드를 수정할 필요가 없습니다.

하지만 이 방법은 서버 구성에 의존하므로 사용 중인 웹 서버에 따라 다를 수 있습니다.

/www/.htaccess 파일에 적용을 하면

리다이렉트 횟수가 너무 많습니다 뜨면서
페이지가 안뜨네요ㅠㅠ

메인을 https로 접속을 해도 다른 페이지는 http 로 되어
로그인이 풀려버리는 증상까지 나오네요..

이걸 어떻게 해결해야 할까요

/extend/user.config.php 파일 상단에

if (strpos(G5_URL, "http://") !== false) goto_url(str_replace("http://", "https://", G5_URL).$_SERVER['REQUEST_URI']);

이방법사용해보세요 상단 아니고 하단입니다.
저는 이상없이 잘사용하고 있습니다.


RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

위 코드도 잘 되는데요?
이코드도 하단에 추가하세요.

하나만 사용하세요

/extend/user.config.php 파일 상단에

if (strpos(G5_URL, "http://") !== false) goto_url(str_replace("http://", "https://", G5_URL).$_SERVER['REQUEST_URI']);


/extend/user.config.php 파일 하단에

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

이렇게 두 소스를 상단 , 하단에 넣으란 말씀이실까요?

/extend/user.config.php파일 에


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;

if (strpos(G5_URL, "http://") !== false) goto_url(str_replace("http://", "https://", G5_URL).$_SERVER['REQUEST_URI']);


===================================================

위에 방법으로 사용시 아래코드는 사용하시면 안됩니다.
둘중 하나만 선택해서 사용하세요

아래코드 사용시  .htaccess/www/프로그램 설치공간
.htaccess 에 추가해서 사용시..


RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

// HTTP 연결을 확인합니다.
$is_http = !isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off';

// HTTP 연결이 확인되면 HTTPS로 리다이렉트합니다.
if ($is_http) {
    header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    exit;
}

으로 한번 해보세요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 18
© SIRSOFT
현재 페이지 제일 처음으로