도메인에 www나 https가 없을때 붙이기
본문
클라우드플레어로 https사용중입니다. 유저가 접속할때 www나 https가 안붙어있을경우 둘다 붙이는 방법
좀 부탁드립니다. 구글링으로 나오는 소스들은 보면 www만 붙거나 https만 붙거나 아니면 홈페이지가 무
한로딩 되어버려서 죽거나 막 그러더라구요 ㅠㅠ 고수님들 답변부탁드립니다.
답변 2
.htaccess 에 아래 코드 넣어보세요
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
<?php
//페이지 최상단에 추가
// https 로 이동하면 www 추가 이동하기==================================
$base_URL = "";
if (!preg_match('/www/', $_SERVER['SERVER_NAME']) == true) { // www 없을때
if(!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on"){
$ssl_port = ""; // 443 포트를 사용하지 않는경우에 이용할 포트번호 입력
if ($ssl_port == "") {
$base_URL = "https://www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
} else {
$base_URL = "https://www.".$_SERVER['HTTP_HOST'].":".$ssl_port.$_SERVER['REQUEST_URI'];
}
// php 문서 최상단에 위치해야 정상 작동
//header("Location: ".$base_URL);
echo "<script>\n";
echo "location.href = '". $base_URL ."';\n"; // 현재창으로 전송
//echo "parent.location.href='". $base_URL ."';\n"; // 부모창으로 전송
echo "</script>\n";
}
} else { // www 있을때
if(!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on"){
$ssl_port = ""; // 443 포트를 사용하지 않는경우에 이용할 포트번호 입력
if ($ssl_port == "") {
$base_URL = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
} else {
$base_URL = "https://".$_SERVER['HTTP_HOST'].":".$ssl_port.$_SERVER['REQUEST_URI'];
}
// php 문서 최상단에 위치해야 정상 작동
//header("Location: ".$base_URL);
echo "<script>\n";
echo "location.href = '". $base_URL ."';\n"; // 현재창으로 전송
//echo "parent.location.href='". $base_URL ."';\n"; // 부모창으로 전송
echo "</script>\n";
}
}
// https 로 이동하면 www 추가 이동하기==================================
%>