PHP를 사용하여 HTTP에서 HTTPS로 리디렉션
장바구니 웹사이트에서 작업하고 있습니다.사용자가 청구 상세 내용을 입력할 때 HTTPS 페이지로 리다이렉트하여 로그아웃할 때까지 다음 페이지의 HTTPS 연결을 유지하고 싶습니다.
이것을 실시하려면 , 서버에 무엇을 인스톨 할 필요가 있습니까(Apache 를 사용하고 있습니다).또, 이 리다이렉트는 PHP 로부터 어떻게 실행할 수 있습니까?
다음과 같이 시도해 보십시오(Apache 및 IIS에서 작동해야 함).
if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === "off") {
$location = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $location);
exit;
}
좋은 방법은 다음과 같습니다.
<?php
if (!(isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' ||
$_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'))
{
$redirect = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $redirect);
exit();
}
?>
IIS에서 PHP를 사용하는 HTTP에서 HTTPS로 리디렉션
MS Internet Information Services(IIS; 인터넷 정보 서비스) 버전 6을 실행하는 Windows 서버에서 HTTPS로 리다이렉트 하는 데 문제가 있었습니다.Linux 호스트에서 Apache를 사용하는 데 더 익숙하기 때문에 인터넷에 도움을 요청했습니다. "php redirect http to https"를 검색했을 때 가장 높은 순위의 Stack Overflow 질문이었습니다.하지만, 선택한 답변은 나에게 효과가 없었다.
몇 번의 시행착오 끝에 IIS를 통해서$_SERVER['HTTPS']
는 TLS 이외의 접속용으로 설정됩니다.저는 다음 코드가 검색 엔진을 통해 이 질문을 받는 다른 IIS 사용자에게 도움이 될 것이라고 생각했습니다.
<?php
if (! isset($_SERVER['HTTPS']) or $_SERVER['HTTPS'] == 'off' ) {
$redirect_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $redirect_url");
exit();
}
?>
편집: 다른 스택오버플로우 답변에서 보다 간단한 해결책은if($_SERVER["HTTPS"] != "on")
.
언제든지 사용할 수 있습니다.
header('Location: https://www.domain.com/cart_save/');
저장 URL로 수정합니다.
단, .htaccess와 Apache rewrite rules에 의한 사용을 권장합니다.
AWS beanstalk 서버에서 $_SERVER['가 표시되지 않습니다.HTTPS'] 변수.$_SERVER['가 표시됩니다.HTTP_X_FORWARDED_PROTO]는 'http' 또는 'https' 중 하나이므로 AWS에서 호스팅하는 경우 다음을 사용하십시오.
if ($_SERVER['HTTP_HOST'] != 'localhost' and $_SERVER['HTTP_X_FORWARDED_PROTO'] != "https") {
$location = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $location);
exit;
}
언급URL : https://stackoverflow.com/questions/5106313/redirecting-from-http-to-https-with-php
'programing' 카테고리의 다른 글
MYSQL 쿼리: 한 열이 여러 다른 그룹에서 여러 번 발생하고 특정 조건과 일치하는 모든 결과를 가져옵니다. (0) | 2022.09.06 |
---|---|
numpy 배열에서 특정 요소를 제거하는 방법 (0) | 2022.09.06 |
MySQL IFNULL 기타 (0) | 2022.09.05 |
함수를 PHP 배열에 저장할 수 있습니까? (0) | 2022.09.05 |
Vuevalidate 비동기 유효성 검사 결과가 루프로 전환됨 (0) | 2022.09.05 |