https 리다이렉션 -> 리다이렉션 횟수가 너무 많습니다 ㅠㅠ 채택완료
안녕하세요.
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로 리다이렉트할 수 있습니다.
</p>
<p>RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ <a href="https://%{HTTP_HOST}%{REQUEST_URI}" target="_blank" rel="noopener noreferrer">https://%{HTTP_HOST}%{REQUEST_URI}</a> [L,R=301]
이 방법은 서버 수준에서 리다이렉트를 처리하기 때문에 PHP 코드를 수정할 필요가 없습니다.
하지만 이 방법은 서버 구성에 의존하므로 사용 중인 웹 서버에 따라 다를 수 있습니다.
답변에 대한 댓글 7개
www 아래 있는 .htaccess
테스트결과 잘됩니다.
리다이렉트 횟수가 너무 많습니다 뜨면서
페이지가 안뜨네요ㅠㅠ
메인을 https로 접속을 해도 다른 페이지는 http 로 되어
로그인이 풀려버리는 증상까지 나오네요..
이걸 어떻게 해결해야 할까요
if (strpos(G5_URL, "http://") !== false) goto_url(str_replace("http://", "https://", G5_URL).$_SERVER['REQUEST_URI']);
이방법사용해보세요 상단 아니고 하단입니다.
저는 이상없이 잘사용하고 있습니다.
[code]
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
[/code]
위 코드도 잘 되는데요?
이코드도 하단에 추가하세요.
하나만 사용하세요
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]
이렇게 두 소스를 상단 , 하단에 넣으란 말씀이실까요?
[code]
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
if (strpos(G5_URL, "http://") !== false) goto_url(str_replace("http://", "https://", G5_URL).$_SERVER['REQUEST_URI']);
[/code]
===================================================
위에 방법으로 사용시 아래코드는 사용하시면 안됩니다.
둘중 하나만 선택해서 사용하세요
아래코드 사용시 .htaccess/www/프로그램 설치공간
.htaccess 에 추가해서 사용시..
[code]
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
[/code]
댓글을 작성하려면 로그인이 필요합니다.
// HTTP 연결을 확인합니다. $is_http = !isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === 'off';
// HTTP 연결이 확인되면 HTTPS로 리다이렉트합니다. if ($is_http) { header('Location: https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); exit; }
으로 한번 해보세요.
답변에 대한 댓글 1개
/extend/user.config.php 파일 같은 위치에 하면 될까요?
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
.htaccess 파일이 /에도 있고 /www/ 에도 있습니다.
어느 파일에 입력을 해두어야 할까요?