我试图让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