gpt4 book ai didi

php - 如何让 Apache 在 PHP 错误的情况下发送 500?

转载 作者:可可西里 更新时间:2023-11-01 12:54:50 25 4
gpt4 key购买 nike

我正在开发一个 PHP 应用程序,它使用 HTTP 响应代码进行通信以及响应主体。所以这是 PHP 代码中的一个典型场景:

try {
doSomething();
}
catch (Exception $e) {
header('HTTP/1.1 500 Internal Server Error');
}

... 客户端中的典型代码如下所示:

switch(responseCode) {
case 200 :
// all fine
// ....
case 500 :
// trouble!
}

这很酷,只要每个错误都在 PHP 代码中被很好地捕获。

问题:如果出于任何原因在 php 代码中出现 Uncaught Error 或语法错误等无法捕获的错误,Apache 将发送 200 OK。但我不想让 apache 说 500 Internal Server Error。也许每个 .htaccess 左右。

最佳答案

当然可以,write your own error handler .然而,并不是所有的 PHP 错误都是可捕获的。例如,语法错误甚至不允许您的代码运行,包括您的错误处理程序。

要处理可捕获的错误,您可以使用 auto_append_fileauto_prepend_file放置错误处理代码的指令。

不可捕获的错误是一个不同的问题。如果 PHP 运行为 Fast CGI ,它会自动为你生成一个 500 状态码。但是,您可能正在通过其他一些 SAPI(例如 Apache 模块)运行 PHP。对此一无所知,抱歉。 (如果我发现了什么,我会报告。)

关于php - 如何让 Apache 在 PHP 错误的情况下发送 500?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3412676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com