2016-09-22 59 views
0

我试图让Laravel响应自定义403错误而不是显示默认的nginx禁止页面。允许Laravel响应403而不是nginx

我有在app/Exceptions/Handler.php我的大多数异常类型的自定义处理程序和他们工作得很好,除了403我加了render函数中的以下代码到Handler.php file处理403:

if($e instanceof HttpException && $e->getStatusCode() == 403){ 
     return response("403 Forbidden error response"); 
    } 

但我还是只看到默认的nginx禁止页,如果我可以说,导航到http://myapp.com/images/

在这一点上我相当肯定这是一个nginx的配置我可能会丢失,但我不是100%肯定,在网上搜索后什么,似乎无法找到解决方案。

谢谢

+1

什么是阻止用户访问'/ images'?如果是nginx配置中的服务器块,您将无法更改laravel上的响应,因为它会在调用Laravel之前阻止。 –

+1

请[edit]包含您的nginx配置。 – Keelan

回答

0

谢谢你的建议和评论大家,我已经能够找到并修复是什么造成的问题。正如伊莱亚斯苏亚雷斯在上面提到的那样,评论显然这个问题在拉拉维尔到达之前就已经发生了。我走进我的nginx的配置文件,发现下面一行:

error_page 404 /index.php; 

而且由于Laravel确实是正确处理404错误,我只是简单地添加同样的事情为403:

error_page 403 /index.php; 

现在Laravel正在以我想要的方式处理任何403错误。

谢谢!