Heim >Backend-Entwicklung >PHP-Tutorial >Warum erzeugt mein PHP-Code keinen 404-Fehler?

Warum erzeugt mein PHP-Code keinen 404-Fehler?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-11 06:25:02266Durchsuche

Why Doesn't My PHP Code Produce a 404 Error?

Das 404-Fehlerproblem in PHP-Anwendungen lösen

Bei der PHP-Entwicklung ist es manchmal notwendig, einen 404-Fehler zurückzugeben, um anzuzeigen, dass eine Ressource nicht verfügbar sein kann gefunden. Es kann jedoch vorkommen, dass ein Code wie der folgende nicht den beabsichtigten 404-Fehler erzeugt.

if (strstr($_SERVER['REQUEST_URI'],'index.php')) {
    header('HTTP/1.0 404 Not Found');
}

Anstatt einen 404-Fehler anzuzeigen, erhalten Sie möglicherweise eine leere Seite. Das Problem liegt darin, wie Webserver und PHP bei der Verarbeitung von 404-Antworten interagieren.

Wie in der bereitgestellten Antwort erläutert:

  • Webserver behandeln 404-Fehler normalerweise selbst und zeigen eine bestimmte 404-Seite an .
  • PHP überschreibt diesen Prozess jedoch, indem es die Anfrage empfängt und einen 404-Header sendet.

Dadurch umgeht der Webserver seinen eigenen 404-Verarbeitungsmechanismus. Infolgedessen sendet der Webserver anstelle der vorgesehenen 404-Seite alles, was PHP produziert, was in diesem Fall eine leere Seite ist.

Um dieses Problem zu beheben, sollte PHP den 404-Header senden, bevor der Webserver startet Verarbeitung von PHP. Dadurch wird sichergestellt, dass der Webserver die Antwort ordnungsgemäß verarbeiten und die entsprechende 404-Seite anzeigen kann.

Der korrigierte Code:

header('HTTP/1.0 404 Not Found');
exit(); // To prevent any further PHP processing

Das obige ist der detaillierte Inhalt vonWarum erzeugt mein PHP-Code keinen 404-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn