在windows上配置好了nginx+php的环境
但是在php中通过
<code>header('http/1.1 403 Forbidden'); </code>
来尝试返回403缺没用,看浏览器接收到header,状态码却是200。再尝试了
<code>http_response_code(403); </code>
或者laravel的
<code>Response::json($res,403); </code>
全部都无效,永永远远地返回200的状态码?这是怎么回事?怎么才可以改变状态码?
在windows上配置好了nginx+php的环境
但是在php中通过
<code>header('http/1.1 403 Forbidden'); </code>
来尝试返回403缺没用,看浏览器接收到header,状态码却是200。再尝试了
<code>http_response_code(403); </code>
或者laravel的
<code>Response::json($res,403); </code>
全部都无效,永永远远地返回200的状态码?这是怎么回事?怎么才可以改变状态码?
LZ你好,我刚刚试过我的环境,没问题,估计是你Laravel中调错了。
实验1:
<code>//test.php <?php header('http/1.1 403 Forbidden');</code></code>
浏览器测试:
实验2:
在Laravel的IndexController.php中新建test动作
<code>public function test(){ return (new Response('页面禁止访问', 403))->header('Content-Type', 'text/html'); } </code>
浏览器测试:
把php.ini里面的
<code>cgi.rfc2616_headers = 1;</code>
改成
<code>cgi.rfc2616_headers = 0;</code>