반응형
서버 요청이 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;
}
?>
반응형
'개발이야기 > PHP' 카테고리의 다른 글
[PHP] 간단히 페이징 구현하기, 리스트 페이징 (bootstrap 페이징 css) (0) | 2022.10.14 |
---|---|
[PHP] CAPTCHA(캡차) 이미지 만들기, 캡차(CAPTCHA) 새로고침 (0) | 2022.10.14 |
[PHP] 디렉토리 파일 삭제, 특정 파일 삭제, 특정 파일 제외 삭제 (unlink) (0) | 2022.09.30 |
[PHP] 위도/경도로 거리 구하기 (0) | 2022.09.26 |
[PHP] str_replace array 배열로 문자열 변경 (0) | 2022.09.23 |
댓글