Я пишу аутентификацию 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
? Если это так, любая идея, как я это установил?