현재 사이트 URL 프로토콜(http 또는 https)을 확인하는 것은 다음을 보장하는 데 필수적입니다. 안전하고 일관된 웹사이트 운영. 그러나 로컬로 개발하거나 SSL 없이 개발하는 경우 이러한 기능의 정확성을 테스트하는 것이 어려울 수 있습니다.
제공된 "siteURL" 함수는 $_SERVER 배열의 'HTTPS' 키와 비어 있지 않거나 'off' 값입니다. 또는 'SERVER_PORT'가 443인지 확인합니다. 두 조건 중 하나가 충족되면 "https://"를 반환하고, 그렇지 않으면 "http://"를 반환합니다.
SSL이 없는 경우 프로토콜을 정확하게 결정하려면 $_SERVER 배열을 검사해야 합니다. 그러나 SSL이 활성화된 경우 앵커 태그 URL이 http를 사용하더라도 서버는 자동으로 URL을 https로 변환합니다. 결과적으로 프로토콜 확인이 불필요해 보일 수 있습니다.
이를 해결하기 위해 $_SERVER에서 HTTPS 및 HTTP 프로토콜 표시기를 모두 확인하여 향상된 구현을 제안합니다. 정렬. 이러한 조건 중 하나라도 충족되면 함수는 올바른 프로토콜을 반환합니다.
<code class="php">if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $protocol = 'https://'; } else { $protocol = 'http://'; }</code>
이 접근 방식은 SSL 활성화 여부에 관계없이 두 경우 모두 정확성을 보장합니다.
위 내용은 다음은 문제와 해결책에 초점을 맞춘 몇 가지 제목 옵션입니다. 옵션 1(직접적이고 간결함): PHP에서 올바른 사이트 URL 프로토콜을 결정하는 방법(http 대 https) 옵션 2(차 강조의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!