본문 바로가기
다양한 TIP

Location redirect 302 상대경로 절대경로 외부경로 페이지이동

by 유기농프로그래밍 2022. 6. 17.
반응형

302 Redirect Code로 페이지 이동

페이지이동을 시킬 일이 생긴다면, 어떻게 하면 될까요?

간단한 방법으로는 아래와 같이 php 로 페이지 이동 리소스를 만드는 겁니다.

 

Location: <URL>

<?php
    header('Location: <URL>');
?>

여기 URL입력에는 상대경로, 절대경로, 외부경로가 있습니다.

외부경로

외부경로는 scheme 이 꼭 있어야합니다. scheme이란 사용할 프로토콜을 말하는데, 예로 http:// https:// 등등이 있습니다.

아래와 같이 입력하면 외부경로로 이동할 수 있습니다.

Location: https://seahrin.com

<?php
    header('Location: https://seahrin.com');
?>

패킷덤프로 확인해 보면 Response에 Location에 https://seahrin.com  오는 걸 볼 수 있습니다.  

그리고 난 후 https://seahrin.com 으로 페이지가 가 이동되게 됩니다.

상대경로

상대경로는 현재 위치에서 시작하여 다른 리소스의 경로를 입력하면 되는데요.

폴더가 아래와 같이 되어 있다고 가정하고 ../test 로 입력하겠습니다.

그러면 상대경로이기 때문에 시작한 redirect 폴더에서 '..'으로 인해 상위폴더인 mc폴더로, 그리고 'test' 로 인해 test 폴더로 이동하게 됩니다.

<?php
    header('Location: ../test');
?>

절대경로

절대경로는 루트디렉토리인 /로 시작하여 표현하면 되는데요. 리눅스에서 절대경로 사용하듯이 생각하면 됩니다.

<?php
    header('Location: /mc/');
?>

알아둘 팁

여기서 주의할 것은 위의 외부경로에서 설명한 바와 같이 scheme이 없다면 '/'로 시작유무에 따라 절대경로나 상대경로로 인식하게 된다는 것입니다.

 

예를 들어 아래와 같이 코드를 작성한다면 어떻게 될까요?

아래 덤프를 보는 바와 같이 해당 위치에서 seahrin.com 이라는 리소스로 인식하여 호출하게 됩니다. 즉, 상대경로로 인지한 것입니다.

<?php
    header('Location: seahrin.com');
?>

반응형

댓글