PHP致命错误作为状态代码200返回到HTTP客户端.如何让它返回状态码500(内部服务器错误)?
我正在用PHP编写一个身份验证脚本,作为API调用,否则需要返回200 only in the case that it approves the request, and403 (Forbidden) or500`.
我200遇到的问题是php 在错误情况下返回,输出错误为html.500除非我自己显式返回HTTP 200或HTTP,否则如何确保php将返回HTTP 代码403?换句话说,我想将任何和所有警告或错误条件转换为500s,没有例外,以便默认情况下拒绝验证请求,并且异常是使用200代码批准它.
我摆弄set_error_handler()和error_reporting(),但至今没有运气.例如,如果代码在发送HTTP响应代码之前输出了某些内容,PHP自然会报告您在输出任何内容后无法修改标头信息.但是,这被PHP报告为200响应代码,其中html解释了该问题.我甚至需要把这种东西变成500代码.
这可能在PHP?或者我是否需要在mod_rewrite某种程度上以更高的级别执行此操作?如果是这样的话,任何想法我怎么设置它?