Я пишу аутентификацию script в PHP, которая будет называться API, которая должна вернуть 200 only in the case that it approves the request, and 403 (Forbidden) or 500`.
Проблема, с которой я сталкиваюсь, заключается в том, что php возвращает 200 в случае ошибок, вызывая ошибку вместо html. Как я могу быть абсолютно уверен, что php вернет код HTTP 500, если я не буду явно возвращать HTTP 200 или HTTP 403 сам? Другими словами, я хочу превратить любые и все предупреждения или ошибки в 500 s, без исключений, так что случай по умолчанию отклоняет запрос аутентификации, а исключение утверждает его с кодом 200.
Я поиграл с set_error_handler() и error_reporting(), но пока не повезло. Например, если код выводит что-то до отправки кода ответа HTTP, PHP, естественно, сообщает, что вы не можете изменять информацию заголовка после вывода чего-либо. Тем не менее, это сообщается PHP как код ответа 200 с html, объясняющим проблему. Мне нужно, чтобы даже это было превращено в код 500.
Возможно ли это в PHP? Или мне нужно сделать это на более высоком уровне, например, используя mod_rewrite? Если это так, любая идея, как я это установил?