PHP http:// 도메인에 www 를 무조건 넣거나 빼기 & https:// 로 이동하기 (포워딩)
페이지 정보
본문
header 를 이용하는 방식과 javascript 를 이용하는 방법을 안내합니다.
방식은 PHP 페이지 최상단에서 위치해야 정상 작동하며, 강력하게 작동합니다.
javascript는 페이지 상단이 아니어도 작동하지만, javascript를 제한한 경우에 작동하지 않습니다.
www 붙이기 ↔ www 제거하기
https://www.happyjung.com/lecture/102
1. https 로 이동하면서 www 추가하고 싶을때
<?php
// https 로 이동하면 www 추가 이동하기
$base_URL = "";
if (!preg_match('/www/', $_SERVER['SERVER_NAME']) == true) { // www 없을때
if($_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($_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";
}
}
//echo "https 로 이동하면 www 추가 이동하기<br>";
//echo $base_URL ."<br><br>";
?>
2. https 로 이동하면서 www 제거하고 싶을때
<?php
// https 로 이동하면 www 제거하기
$base_URL = "";
if (!preg_match('/www/', $_SERVER['SERVER_NAME']) == true) { // www 없을때
if($_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'];
}
//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($_SERVER['HTTPS'] != "on"){
$ssl_port = ""; // 443 포트를 사용하지 않는경우에 이용할 포트번호 입력
if ($ssl_port == "") {
$base_URL = "https://".str_replace("www.","",$_SERVER['HTTP_HOST']).$_SERVER['REQUEST_URI'];
} else {
$base_URL = "https://".str_replace("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";
}
}
//echo "https 로 이동하면 www 제거하기<br>";
//echo $base_URL ."<br><br>";
?>
3. .htaccess 파일을 이용해서 적용할때
.htaccsess 생성해서 호스팅 계정 최상단에 업로드합니다.
위 1 또는 2를 적용해서 정상 작동할때는 이것을 적용할 필요 없습니다.
3-1. 433 포트를 사용할 수 없을때
RewriteEngine On
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}:포트번호%{REQUEST_URI} [L,R]
3-2. 433 포트를 사용할때
RewriteEngine On
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
참고자료
http://jobdahan.net/language_php/1435795
https://sir.kr/qa/245731
방식은 PHP 페이지 최상단에서 위치해야 정상 작동하며, 강력하게 작동합니다.
javascript는 페이지 상단이 아니어도 작동하지만, javascript를 제한한 경우에 작동하지 않습니다.
www 붙이기 ↔ www 제거하기
https://www.happyjung.com/lecture/102
1. https 로 이동하면서 www 추가하고 싶을때
<?php
// https 로 이동하면 www 추가 이동하기
$base_URL = "";
if (!preg_match('/www/', $_SERVER['SERVER_NAME']) == true) { // www 없을때
if($_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($_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";
}
}
//echo "https 로 이동하면 www 추가 이동하기<br>";
//echo $base_URL ."<br><br>";
?>
2. https 로 이동하면서 www 제거하고 싶을때
<?php
// https 로 이동하면 www 제거하기
$base_URL = "";
if (!preg_match('/www/', $_SERVER['SERVER_NAME']) == true) { // www 없을때
if($_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'];
}
//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($_SERVER['HTTPS'] != "on"){
$ssl_port = ""; // 443 포트를 사용하지 않는경우에 이용할 포트번호 입력
if ($ssl_port == "") {
$base_URL = "https://".str_replace("www.","",$_SERVER['HTTP_HOST']).$_SERVER['REQUEST_URI'];
} else {
$base_URL = "https://".str_replace("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";
}
}
//echo "https 로 이동하면 www 제거하기<br>";
//echo $base_URL ."<br><br>";
?>
3. .htaccess 파일을 이용해서 적용할때
.htaccsess 생성해서 호스팅 계정 최상단에 업로드합니다.
위 1 또는 2를 적용해서 정상 작동할때는 이것을 적용할 필요 없습니다.
3-1. 433 포트를 사용할 수 없을때
RewriteEngine On
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}:포트번호%{REQUEST_URI} [L,R]
3-2. 433 포트를 사용할때
RewriteEngine On
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
참고자료
http://jobdahan.net/language_php/1435795
https://sir.kr/qa/245731
댓글목록
등록된 댓글이 없습니다.