欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

nginx + php7.0 返回状态码永远是200

程序员文章站 2022-05-29 18:36:07
...
在windows上配置好了nginx+php的环境
但是在php中通过
header('http/1.1 403 Forbidden');

来尝试返回403缺没用,看浏览器接收到header,状态码却是200。再尝试了

http_response_code(403);

或者laravel的

Response::json($res,403);

全部都无效,永永远远地返回200的状态码?这是怎么回事?怎么才可以改变状态码?

回复内容:

在windows上配置好了nginx+php的环境
但是在php中通过

header('http/1.1 403 Forbidden');

来尝试返回403缺没用,看浏览器接收到header,状态码却是200。再尝试了

http_response_code(403);

或者laravel的

Response::json($res,403);

全部都无效,永永远远地返回200的状态码?这是怎么回事?怎么才可以改变状态码?

LZ你好,我刚刚试过我的环境,没问题,估计是你Laravel中调错了。

实验1:

//test.php

浏览器测试:
nginx + php7.0 返回状态码永远是200

实验2:
在Laravel的IndexController.php中新建test动作

public function test(){
        return (new Response('页面禁止访问', 403))->header('Content-Type', 'text/html');
    } 

浏览器测试:
nginx + php7.0 返回状态码永远是200

把php.ini里面的

cgi.rfc2616_headers = 1;

改成

cgi.rfc2616_headers = 0;
相关标签: php nginx