允许Laravel响应403而不是nginx


Allow Laravel to respond to 403 instead of 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%确定是什么,搜索网页后似乎找不到解决方案。

谢谢

感谢大家的建议和评论,我已经能够找到并修复导致问题的原因。正如Elias Soares在上面的评论中提到的,这个问题显然在Laravel到达之前就已经发生了。我进入我的nginx配置文件,注意到以下行:

error_page 404 /index.php;

,因为Laravel确实正确地处理404错误,我简单地为403添加了完全相同的东西:

error_page 403 /index.php;

和现在Laravel处理任何403错误的方式,我想它做的。

谢谢!

你不需要做任何特别的事情。

只要在resources/views/errors/下创建403.blade.php就可以了。

https://laravel.com/docs/5.3/errors custom-http-error-pages