복붙노트

PHP 리다이렉트 구현

PHP

PHP 리다이렉트 구현

리다이렉션이라는 건 현재 웹 페이지를 다른 페이지로 이동하는 것을 말합니다.

header

기본적으로는 header 를 통해서 구현합니다.

기초

header('Location: '.$newURL);  
exit();  

exit()를 붙여주는 이유는 리다이렉션을 하고 나서 추가로 뭔가 실행되지 않게 하기 위해서입니다.

상태 코드

http는 기본적으로 상태 코드를 붙이죠.
예를 들면 404는 페이지 없음. 301은 영구 이동, 302는 임시 이동 등입니다.

header('Location: ' . $url, true, 301);  
exit();  

자세한 상태 코드는 https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C 를 참고하세요.

함수화시키기

function redirect($url, $code=200){  
header('Location: ' . $url, true, $code);  
exit();  
}  

redirect('/new_page.php'); // 200 http 코드를 가지고 페이지 이동  
// 또는  
redirect('/new_page.php', 301); // 301 http 코드를 가지고 페이지 이동  

header를 쓸 수 없는 경우

php의 header는 무조건 본문 위에 나와야 합니다.
자세한 내용은 http://cnpnote.tistory.com/entry/PHP-Headers-already-sent-%EC%98%A4%EB%A5%98 을 참고하세요.


하지만 뭔가 처리를 하다가 잘못되었을 경우 페이지를 이동시키는 경우도 있잖아요?
아니면 5초 후에 이동합니다. 등이라던가 하는 케이스가 있죠.

그럴때는 부득이하게 자바스크립트를 씁니다.

function redirect_js($url){  
echo "";  
exit();  
}  


'PHP' 카테고리의 다른 글

php로 gmail 보내기  (0) 2017.11.17
PHP URL rewrite 구현해보기  (0) 2017.11.16
PHP 날짜 차이 계산하기  (0) 2017.11.15
PHP JSON 다루기  (0) 2017.11.14
PHP 배열 정렬하기  (0) 2017.11.14