IT

PHP를 사용하여 오류 404 페이지를 만드는 방법

itgroup 2023. 2. 6. 23:24
반응형

PHP를 사용하여 오류 404 페이지를 만드는 방법

내 파일.htaccess에서의 모든 요구를 처리하다/word_here내부 엔드 포인트로/page.php?name=word_here그러면 PHP 스크립트는 요청된 페이지가 해당 페이지 배열에 있는지 확인합니다.

그렇지 않은 경우 오류 404를 시뮬레이션하려면 어떻게 해야 합니까?

시도했지만 404 페이지가 설정되지 않았습니다.ErrorDocument에서.htaccess나타났어.

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");

에러 404 페이지로 리다이렉트 하는 것이 잘못되었다고 생각하는 것이 맞습니까?

404 페이지 생성에 대한 최신 답변(PHP 5.4 이후)은 다음을 사용하는 것입니다.

<?php
http_response_code(404);
include('my_404.php'); // provide your own HTML for the error page
die();

die()반드시 필요한 것은 아니지만 정상적인 실행을 계속하지 않도록 합니다.

실행 중인 작업이 작동하며 브라우저에 404 코드가 수신됩니다.예상할 수 있는 "찾을 수 없음" 페이지는 표시되지 않습니다.예를 들어 다음과 같습니다.

찾을 수 없음

요청된 URL/test.이 서버에서 php를 찾을 수 없습니다.

이는 PHP가 404 코드를 반환할 때 웹 서버가 해당 페이지를 보내지 않기 때문입니다(적어도 Apache는 보내지 않습니다).PHP는 자체 출력을 모두 전송합니다.따라서 비슷한 페이지를 원한다면 HTML을 직접 전송해야 합니다. 예를 들어 다음과 같습니다.

<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404);
include("notFound.php");
?>

다음 내용을 httpd.conf에 입력하면 Apache가 404 메시지에 동일한 페이지를 사용하도록 설정할 수 있습니다.

ErrorDocument 404 /notFound.php

이것을 시험해 보세요.

<?php
header("HTTP/1.0 404 Not Found");
?>

.htaccess 파일을 통해 사용자 지정 오류 페이지 생성

1. 404 - 페이지를 찾을 수 없습니다.

 RewriteEngine On
 ErrorDocument 404 /404.html

2. 500 - 내부 서버 오류

RewriteEngine On
ErrorDocument 500 /500.html

3. 403 - 금지

RewriteEngine On
ErrorDocument 403 /403.html

4. 400 - 잘못된 요청

RewriteEngine On
ErrorDocument 400 /400.html

5. 401 - 인가 필요

RewriteEngine On
ErrorDocument 401 /401.html

모든 오류를 한 페이지로 리디렉션할 수도 있습니다.맘에 들다

RewriteEngine On
ErrorDocument 404 /404.html
ErrorDocument 500 /404.html
ErrorDocument 403 /404.html
ErrorDocument 400 /404.html
ErrorDocument 401 /401.html

헤더를 보낸 후 die()를 잊지 않으셨습니까?404 헤더는 자동으로 처리를 정지하지 않기 때문에 추가 처리가 발생하면 아무것도 하지 않은 것처럼 보일 수 있습니다.

404 페이지로 리디렉션하는 것은 좋지 않지만, 404 페이지에 있는 내용은 문제 없이 포함할 수 있습니다.이렇게 하면 올바른 URL에서 404 상태를 올바르게 전송하는 페이지가 있지만, 인간 판독기를 위한 "뭘 찾고 계십니까?" 페이지도 있습니다.

퍼팅을 시도하다

ErrorDocument 404 /(root directory)/(error file) 

.htaccess파일.

모든 오류에 대해 이 작업을 수행하되 오류는 404로 대체하십시오.

Drupal 또는 Wordpress CMS(및 기타)에서 커스텀 php 코드가 존재하지 않는 것처럼 보이게 하려고 할 경우(일부 조건이 충족되지 않는 한), CMS의 404 핸들러를 넘겨받음으로써 다음과 같이 동작합니다.

<?php
  if(condition){
    do stuff;
  } else {
    include('index.php');
  }
?>

행 , 이 행의 .exit ★★★★★★★★★★★★★★★★★」die()

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
exit;

또는

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
die();

이거 한 번만 해봐.

$wp_query->set_404();
status_header(404);
get_template_part('404'); 

언급URL : https://stackoverflow.com/questions/1381123/how-to-create-an-error-404-page-using-php

반응형