테스트 사이트 - 개발 중인 베타 버전입니다

PHP 만으로 www 가 붙은 도메인으로 redirect 시키기 - 웹서버의 .htaccess 설정 없이

· 6년 전 · 10254 · 15

PHP 에서 www 가 붙지 않은 도메인을 www 가 붙은 도메인으로 redirect 시키는 방법입니다. 

 

아파치 등의 웹서버에서 rewrite 기능을 활용하여 제어하는 방법도 있으나, 
여기서는 php 의 리다이렉트 기능만으로 처리하는 방법을 사용합니다. 

 

아래 코드를 자신의 도메인으로 변경하고, 파일을 만들어 extend 폴더에 넣으시면 됩니다. 


예제를 활용하면 A 도메인을 B 도메인으로 redirect 시키는 방법도 가능합니다. 

 

SSL(https) 인 경우와 아닌 경우, 각각 SSL 로 바꾸도록 처리합니다. 

한꺼번에 처리하는 방법도 추가합니다. 

 

- 2018-12-20 수정

stristr 함수를 stripos 함수로 변경합니다. 

참고 : https://sir.kr/cm_free/587180


[code]
$full_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https://" : "http://") . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

 

// https 도메인 redirect 하기
if (stripos($full_url, "https://domain.com") !== false) {
    goto_url("https://www.domain.com" . $_SERVER['REQUEST_URI']);
}
// http 도메인 redirect 하기
if (stripos($full_url, "http://domain.com") !== false) {
    goto_url("https://www.domain.com" . $_SERVER['REQUEST_URI']);
}
// 참고, 위 둘을 한꺼번에 처리하기
if (stripos($full_url, "//domain.com") !== false) {
    goto_url("https://www.domain.com" . $_SERVER['REQUEST_URI']);
}
[/code]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 15개

답변 감사합니다.

htaccess 설정은

<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
</ifmodule>
이렇게 하면 될까요?
htaccess 설정은 다른 게시물을 참고해 보세요.
https://sir.kr/g5_tip/8916
6년 전
ssl 리다이렉트
감사합니다~ : )

강추 자료입니다. ^^  

감사합니다.

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168