https로 접속시 강제로 http로 리다이렉트 시키는방법이 있나요?

https로 접속시 강제로 http로 리다이렉트 시키는방법이 있나요?

QA

https로 접속시 강제로 http로 리다이렉트 시키는방법이 있나요?

본문

한 서버에 ssl을 두개 돌리니 하나는 포트가 444라 url에 포트가 따라다녀 아예 https로 접속을 하면

http로 강제 리다이렉트를 시켜버리려고 합니다. 방법이 있나요?

그누보드 사이트는 아닙니다.

이 질문에 댓글 쓰기 :

답변 3

// 바탕 base_URL
// 서버 중 일부에서 $_SERVER['HTTPS'] 는 정의되지 않은 변수이므로 오류가 발생합니다.
if(isset($_SERVER['HTTPS'])) {
    if ($_SERVER['HTTPS'] == "on") {
        $secure_connection = true;
        $base_URL = "https://";
    }
} else {
    $base_URL = "http://";
}
//$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
echo $base_URL;
//=>  http://happyjung.com

 

를 잘 응용해보세요.  444 일때는 http 로 보내는 방법을...

참고자료  http://www.happyjung.com/lecture/152

$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
echo $base_URL;

if($base_URL == "444"){
    header('location : http://www.abc.com/');
}

 

$base_URL이 444가 찍히는데 왜 이동을 안할까요?

현재 홈페이지 접속주소가  https://aa.com:444 이라면

<php
// 바탕 base_URL
// 서버 중 일부에서 $_SERVER['HTTPS'] 는 정의되지 않은 변수이므로 오류가 발생합니다.
if(isset($_SERVER['HTTPS'])) {
    if ($_SERVER['HTTPS'] == "on") {
        $secure_connection = true;
        $base_URL = "https://";
    }
} else {
    $base_URL = "http://";
}
//$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
echo $base_URL;
?>
https://aa.com:444 라고 찍히게 됩니다.
다시 정리해보면

<php
// 바탕 base_URL
// 서버 중 일부에서 $_SERVER['HTTPS'] 는 정의되지 않은 변수이므로 오류가 발생합니다.
if(isset($_SERVER['HTTPS'])) {
    if ($_SERVER['HTTPS'] == "on") {
        $secure_connection = true;
        $base_URL = "https://";
    }
} else {
    $base_URL = "http://";
}
//$base_URL = ($_SERVER['HTTPS'] == 'on') ? 'https://' : 'http://';
$base_URL .= ($_SERVER['SERVER_PORT'] != '80') ? $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] : $_SERVER['HTTP_HOST'];
//echo $base_URL;

if($base_URL == "https://aa.com:444"){
    header('location : http://www.abc.com/');
}
?>

이렇게 하면 원하는 결과가 보일껍니다.

모든 페이지 상단에 아래의 소스를 추가해보세요.

if($_SERVER['REQUEST_SCHEME'] =='https') {

  echo '<meta http-equiv="refresh" content="0;URL=\'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'\'">';

}

답변을 작성하시기 전에 로그인 해주세요.
전체 123,128 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT