-
- Header("HTTP/1.1 404 Not Found");
코드 복사
Apache 구성의 경우 nginx 구성의 ErrorDocument 404 /404.php 함수
하여 변경하세요.
-
- error_page 404 = /404.php;
코드 복사
php heager 301
-
- header("HTTP/1.1 301 영구적으로 이동됨")
- header("위치:$url");
- ?>
코드 복사
페이지 헤더 수에 관계없이 마지막 헤더를 실행하지만 조건부입니다. 예:
-
- header('위치:http://bbs.it-home.org')
- header('위치:http://www .g.cn');
- header('위치:http://www.baidu.com');
코드 복사
이것은 점프합니다. 바이두에
-
- header('위치:http://bbs.it-home.org');echo '프로그래머 홈;
- header(' 위치: http://www.g.cn');
- header('위치:http://www.baidu.com');
코드 복사
Google로 이동합니다.
헤더 기능 사용에 대한 자세한 지침
1. 기능:
PHP는 HTTP 프로토콜을 사용하여 HTML 문서의 헤더만 브라우저에 보내고 브라우저에 페이지 처리 방법을 알려줍니다. 전송되는 내용은 HTTP 프로토콜에 익숙해야 하며 PHP와는 아무런 관련이 없습니다.
기존 헤더는 다음 세 가지 헤더 중 하나를 포함해야 하며 한 번만 나타날 수 있습니다.
-
- <1> 가장 많이 사용되는 리디렉션 기능입니다.
- Header("위치: http://bbs .it-home.org/");
- ?>
코드 복사
사용자가 방문할 때마다 최신 정보를 얻도록 강제 클라이언트 측에 존재하는 캐시를 사용하는 대신 이 페이지를 사용합니다.
-
- //브라우저에게 이 페이지의 만료 시간(그리니치 표준시로 표시)을 알려줍니다. 지나간 날짜입니다.
- header("Expires: Mon, 26 Jul 1970 05:00:00 GMT")
- //브라우저에게 이 페이지의 마지막 업데이트 날짜(그리니치 표준시로 표시), 즉 현재 날짜를 알려줍니다. . 목적은 브라우저가 최신 정보를 얻도록 하는 것입니다.
- header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT")//Tell the 캐시를 사용하지 않는 클라이언트 브라우저
- header("Cache-Control: no-cache, must-revalidate")
- //Parameters(이전 서버와 호환 가능), 즉 HTTP1.0 프로토콜과 호환 가능
- header("Pragma: no- 캐시");
- //출력 MIME 유형
- header("콘텐츠 유형: 애플리케이션/파일")
- //파일 길이
- header("콘텐츠 -길이: 227685");
- //허용 범위 단위
- header("Accept-Ranges: bytes");
- //파일 저장 대화 상자의 기본 파일 이름
- header(" Content-Disposition: attachment; filename=$filename");
- ?>
-
코드 복사
브라우저에 상태 값을 출력합니다. 주로 접근 통제에 사용됨
- header('HTTP/1.1 401 권한 없음')
- header('상태: 401 권한 없음'); 🎜>?>
-
-
코드 복사
예를 들어 사용자가 이 페이지에 액세스하지 못하도록 제한하려면 다음과 같이 상태를 404로 설정할 수 있습니다. 아래와 같이 브라우저에 해당 페이지가 존재하지 않는 것으로 표시되도록 합니다.
header('HTTP/1.1 404 찾을 수 없음') - header("상태: 404 찾을 수 없음") ;
- ?>
-
-
코드 복사
참고: 기존 헤더에는 다음 세 가지 헤더 중 하나가 포함되어야 하며 한 번만 나타날 수 있습니다. 콘텐츠 유형: xxxx/yyyy 위치: xxxx:yyyy/zzzz 상태: nnn xxxxxx는 새로운 멀티파트 헤더 사양(멀티파트 MIME)에서 두 번 이상 나타날 수 있습니다.
사용 예
예제 1: 이 예제는 브라우저를 PHP 공식 웹사이트로 리디렉션합니다.
Header("위치: http://bbs.it-home.org/");exit;-
-
복사 코드
예 2: 프록시나 캐시의 데이터 대신 사용자가 매번 최신 데이터를 얻도록 하려면 다음 헤더를 사용할 수 있습니다.
-
- header("만료: 1997년 7월 26일 월요일 05:00:00 GMT")
- header("마지막 수정: " . gmdate ("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate")
- header("Pragma: no-cache"); 🎜>
코드 복사
예 3: 사용자의 브라우저에 파일을 찾을 수 없다는 메시지가 표시되도록 합니다.
- header("Status: 404 Not Found");
-
코드 복사
예 4: 사용자가 파일을 다운로드할 수 있도록 합니다.
- header("콘텐츠 유형: 애플리케이션/x-gzip")
- header("콘텐츠 처리: 첨부 파일; 파일 이름=파일 이름" ) ;
- header("Content-Description: PHP3 생성 데이터");
-
코드 복사
header - 원시 HTTP 헤더 설명 보내기
무효 헤더( 문자열 문자열 [, bool 대체 [, int http_response_code]] )
header() 함수는 원시 HTTP 헤더를 보내는 데 사용됩니다. HTTP 헤더에 대한 자세한 내용은 HTTP/1.1 사양을 참조하세요.
선택적 매개변수인 replacement는 이전의 유사한 헤더를 바꿀지, 아니면 동일한 유형의 헤더를 추가할지 지정합니다. 기본값은 교체이지만 FALSE로 설정하면 동일한 유형의 여러 헤더가 전송될 수 있습니다. 예를 들어:
- header('WWW-인증: 협상')
- header('WWW-인증: NTLM', false );
- ?>
-
코드 복사
두 번째 선택적 매개변수인 http_response_code는 HTTP 응답 코드를 지정된 값으로 강제합니다(이 매개변수는 PHP 4.3 .0입니다). 새로 추가되었습니다).
두 가지 특수 헤더 호출이 있습니다. 첫 번째는 "HTTP/" 문자열(대소문자 구분 없음)로 시작하는 헤더로, 전송할 HTTP 상태 코드를 결정하는 데 사용할 수 있습니다.
예를 들어, 찾을 수 없는 파일에 대한 오류 처리 요청을 처리하기 위해 PHP를 사용하도록 Apache를 구성하는 경우(ErrorDocument 지시어 사용) 스크립트가 올바른 상태 코드를 생성하는지 확인해야 합니다.
- header("HTTP/1.0 404 Not Found")
- ?>
-
코드 복사
참고: 실제 header() 호출이 첫 번째인지 여부에 관계없이 HTTP 상태 코드 헤더 행은 항상 클라이언트에 가장 먼저 전송됩니다. HTTP 헤더가 이미 전송되지 않은 경우 header() 함수를 새 상태 줄로 호출하여 언제든지 덮어쓸 수 있습니다.
HTTP 상태 감지(HTTP 헤더):
두 번째 특별한 경우는 '위치:' 헤더입니다. 이 헤더를 브라우저로 다시 보내는 것뿐만 아니라 이전에 3xx 상태 코드가 발행되지 않은 한 REDIRECT(302) 상태 코드도 브라우저에 반환합니다.
- header("위치: http://www.example.com/") /* 브라우저 리디렉션* /
- /* 리디렉션 후 후속 코드가 실행되지 않도록 하세요*/
- exit; HTTP/1.1 표준에서는 Location: 매개변수로 절대 주소 URI가 필요하지만 일부 클라이언트는 상대 URI를 지원합니다. 일반적으로 $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] 및 dirname() 함수를 사용하여 상대 URI에서 직접 절대 URI를 생성할 수 있습니다.
header("위치: http://".$_server['http_host'/] .rtrim( dirname($_SERVER['PHP_SELF']), '/\') ."/".$relative_url) ?>
- 코드 복사
-
-
참고: session.use_trans_sid가 활성화된 경우에도 세션 ID는 위치 헤더 정보와 함께 전달되지 않습니다. SID 상수로 수동으로 전달해야 합니다.
PHP 스크립트는 브라우저나 프록시 서버에서 캐시하면 안 되는 동적 콘텐츠를 생성하는 경우가 많습니다. 많은 프록시 서버와 브라우저는 다음과 같은 방법으로 캐싱을 비활성화할 수 있습니다.
참고: 위의 모든 코드를 출력하지 않아도 웹페이지가 버퍼링되지 않는 것을 확인할 수 있습니다. 브라우저의 기본 캐싱 동작을 변경하기 위해 사용자가 설정할 수 있는 옵션이 많이 있습니다. 위 헤더를 보내면 스크립트 페이지가 캐시될 수 있는 모든 설정을 무시할 수 있습니다.
또한 세션을 사용할 때 session_cache_limiter() 함수와 session.cache_limiter 옵션을 사용하면 올바른 캐시 관련 헤더를 자동으로 생성할 수 있습니다.
일반 HTML 마크업, 빈 줄 또는 PHP 등 실제 출력 전에 header()를 호출해야 한다는 점을 기억하세요. 일반적인 실수는 include(), require() 또는 기타 파일 액세스 함수를 통해 코드를 읽을 때 header()를 호출하기 전에 일부 공백이나 빈 줄이 전송된다는 것입니다. 이 오류는 단일 PHP/HTML 파일에서도 흔히 발생합니다.
-
- header("Cache-Control: no-cache, must-revalidate") // HTTP/1.1
- header("만료일: 1997년 7월 26일 월요일 05:00:00 GMT"); // 지난 시간
- ?>
코드 복사
-
- /* header()를 호출하기 전에 뭔가가 출력되었기 때문에 오류가 발생합니다.
- **/
- header('위치: http://www.example.com/');
- ?>
코드 복사
참고: PHP에서 시작하기 이후 4, 이 문제는 일부 출력 버퍼링 기능을 통해 해결될 수 있습니다. 비용은 브라우저로의 모든 출력이 이를 전송하라는 명령이 실행될 때까지 서버에 캐시된다는 것입니다. 이 기능을 구현하기 위해 코드에서 ob_start() 및 ob_end_flush()를 사용하거나, php.ini의 output_buffering 구성 옵션을 수정하거나, 서버 구성 파일을 수정하여 사용할 수 있습니다.
첨부된 헤더()의 두 가지 일반적인 용도는 다음과 같습니다.
-
- //페이지 인코딩 설정:
- header('Content-Type:text/html;charset=gb2312')
- //Adjust 페이지:
- 헤더('위치:http://www.baidu.com');
코드 복사
|