PHP에서 헤더 () 함수는 원래 HTTP 헤더 정보를 보내는 데 사용됩니다. 이 헤더는 페이지 리디렉션 설정과 같은 브라우저의 동작을 제어 할 수 있습니다. 페이지 리디렉션은 일반적으로 로그인 후 사용자의 홈페이지로 리디렉션 또는 특정 조건에서 새 페이지로 다른 페이지로 사용자를 지시해야 할 때 일반적으로 사용됩니다.
이 기사에서는 PHP에서 Header () 함수를 사용하여 페이지 리디렉션을 구현하고 몇 가지 일반적인 예제를 표시하는 방법을 소개합니다.
헤더 () 함수의 기본 구문은 다음과 같습니다.
header(string $header, bool $replace = true, int $response_code = 0): void
$ 헤더 : 전송 될 HTTP 헤더 문자열을 전달합니다.
$ 대체 : true (기본값) 인 경우 현재 헤더의 동일한 유형의 값이 교체됩니다. False 인 경우 헤더가 헤더에 추가됩니다.
$ response_code : HTTP 응답 상태 코드를 지정하고 기본값은 0이므로 상태 코드가 설정되지 않았 음을 의미합니다.
페이지 리디렉션을 수행하려면 위치 헤더를 통해 달성 할 수 있습니다. 위치 헤더는 브라우저가 새 URL을로드 함을 나타냅니다.
예를 들어, 다음 코드는 사용자를 https://m66.net/newpage 로 리디렉션합니다.
<?php
header("Location: https://m66.net/newpage");
exit();
?>
헤더 ( "위치 : https://m66.net/newpage"); :이 코드 라인은 브라우저가 https://m66.net/newpage 로 점프하도록 지시합니다.
출구(); : 리디렉션을 전송 한 후 스크립트가 더 이상 계속 실행되지 않도록하기 위해 exit () 함수가 일반적으로 추가됩니다. 이것은 리디렉션 후 추가 컨텐츠가 출력되는 것을 방지합니다.
때로는 사용자 정의 HTTP 상태 코드를 보내야 할 수도 있습니다. 기본적으로 위치 헤더는 302 개의 발견 상태 코드를 사용합니다. 그러나 다른 상태 코드를 명시 적으로 설정할 수도 있습니다.
예를 들어, 301 이동 상태 코드를 사용하려면 다음과 같습니다.
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://m66.net/newpage");
exit();
?>
헤더 ( "http/1.1 301은 영구적으로 움직였다"); : HTTP 응답 상태 코드를 301로 설정하여 페이지가 영구적으로 마이그레이션되었음을 나타냅니다.
헤더 ( "위치 : https://m66.net/newpage"); : 브라우저에 새 URL로 리디렉션하도록 지시하십시오.
전체 절대 URL을 사용하는 것 외에도 리디렉션에 상대 URL을 사용할 수도 있습니다. 이러한 방식으로 사용자가 PHP 페이지에 액세스하면 리디렉션은 현재 웹 사이트의 루트 디렉토리를 기반으로합니다.
예를 들어, 현재 웹 사이트의 /NewPage 페이지로 사용자를 리디렉션합니다.
<?php
header("Location: /newpage");
exit();
?>
이 경우 /NewPage는 현재 도메인 이름에 따라 리디렉션됩니다. 사용자가 현재 액세스 한 페이지가 https://m66.net/oldpage 인 경우 리디렉션 된 URL은 https://m66.net/newpage 입니다.
출력하기 전에 헤더 () 함수를 호출해야합니다. HTTP 헤더 정보는 HTML과 같은 페이지의 다른 콘텐츠 전에 전송되어야하기 때문입니다. 페이지가 컨텐츠를 출력하기 시작하면 헤더 () 함수가 제대로 작동하지 않으며 오류가 트리거됩니다.
이 문제를 피하려면 헤더 () 함수로의 호출이 스크립트의 시작 부분에 있거나 HTML 또는 기타 출력을 보내기 전에 있는지 확인하십시오.
출력 전에 실수로 출력 (예 : HTML 태그 또는 공백)이있는 경우 OB_START ()를 사용하여 출력을 버퍼링 할 수 있습니다. 예를 들어:
<?php
ob_start();
header("Location: https://m66.net/newpage");
exit();
ob_end_flush();
?>
OB_START ()는 출력 버퍼를 시작하고 OB_END_FLUSH ()는 스크립트 끝에서 버퍼를 지우고 출력을 보냅니다.
PHP의 헤더 () 함수는 매우 강력하고 일반적으로 사용되는 도구이며 특히 페이지 리디렉션을 구현하는 데 적합합니다. 적절한 HTTP 응답 상태 코드와 결합 된 위치 헤더를 올바르게 설정하면 임시 점프 또는 영구 점프이든 브라우저의 리디렉션 동작을 제어 할 수 있습니다.
헤더 ()을 호출 할 때 출력을 피하기 위해 리디렉션을 원활하게 실행할 수 있는지 확인하십시오. 필요한 경우 출력 버퍼링을 사용하여 출력으로 인한 문제를 피할 수도 있습니다.
이 기사가 PHP의 페이지 리디렉션을 이해하는 데 도움이되기를 바랍니다.