개발이야기/PHP

[PHP] https 체크하기, http->https 리다이렉트 시키키

후린개발자 2022. 10. 7.
반응형

서버 요청이 http인지 https에서 발생하고 있는지 확인해야 하는 경우가 있습니다.
로그인 페이지나, include 페이지에 필요한 함수입니다.

함수는 2가지 조건을 체크 합니다.


1. 서버 요청에 HTTPS가 존재하고, off가 아닌 경우
2. SERVER_PORT가 443인 경우 

 

1. !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'
2. $_SERVER['SERVER_PORT'] == 443


위의 2가지 조건에서 하나만 true이면 정상적인 접근입니다.

정상적인 접근이 아닐 경우는 false를 리턴하는데 서버 HOST와 REQUEST_URI로 리다이렉트를 시키고 있습니다.

 

<?php
function isHttpsRequest() {	
	if ( (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || $_SERVER['SERVER_PORT'] == 443) {	
		return true; 
	}
	return false;
}

$http_host = $_SERVER['HTTP_HOST'];
$request_uri = $_SERVER['REQUEST_URI'];
$url = 'https://'. $http_host.$request_uri;

 if(!isHttpsRequest()){
    echo "<script>location.href='$url';</script>";
	exit;
}
?>

 

반응형

댓글

💲 추천 글