CODE/PHP

PHP 모든 도메인 접속을 HTTPS로 리다이렉트

unlinky 2024. 11. 16. 21:57
반응형

보통 .htaccess 파일을 사용하는 것이 일반적이지만,

PHP로 모든 도메인 접속을 HTTPS로 리다이렉트 가능함.

 

www로 접속하는경우 제거 후 이동하여 한개의 인증서로 운영시 사용할 수 있는 방법임

 

<?php
$host = $_SERVER['HTTP_HOST'];
$requestUri = $_SERVER['REQUEST_URI'];

// HTTPS가 아니거나 "www"가 있을 경우 HTTPS로 리다이렉트하면서 "www"를 제거
if (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] === "off" || strpos($host, 'www.') === 0) {
    $redirectHost = preg_replace('/^www\./', '', $host); // www 제거
    $redirectUrl = "https://" . $redirectHost . $requestUri;
    header("Location: $redirectUrl");
    exit();
}
?>

 

 

작동 방식

  1. $_SERVER['HTTP_HOST']에 www.가 포함되어 있는지 확인
  2. preg_replace('/^www\./', '', $host)를 통해 www.를 제거
  3. HTTPS 프로토콜과 함께 www가 제거된 URL로 리다이렉트

.htaccess 코드

RewriteEngine On

# www 제거 및 HTTPS 리다이렉트
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

 

LIST

'CODE > PHP' 카테고리의 다른 글

PHP 페이지 이동 / 리다이렉트  (0) 2024.11.18
PHP 배열 합치기 array_push()  (0) 2024.11.17