반응형
보통 .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();
}
?>
작동 방식
- $_SERVER['HTTP_HOST']에 www.가 포함되어 있는지 확인
- preg_replace('/^www\./', '', $host)를 통해 www.를 제거
- 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 |