允许 Laravel 代替 nginx 响应 403

Geo*_*rna 1 php nginx laravel laravel-5

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

我为大多数异常类型都有自定义处理程序,除了 403 之外,它们工作得很好。我在函数中app/Exceptions/Handler.php添加了以下代码来处理 403:Handler.php filerender

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

但如果我导航到http://myapp.com/images/ ,我仍然只会看到默认的 nginx 禁止页面

此时我相当确定这是我可能丢失的 nginx 配置,但我不是 100% 确定什么,并且在搜索网络后似乎找不到解决方案。

谢谢

Geo*_*rna 5

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

error_page 404 /index.php;
Run Code Online (Sandbox Code Playgroud)

由于 Laravel 确实正确处理了 404 错误,所以我只是为 403 添加了完全相同的内容:

error_page 403 /index.php;
Run Code Online (Sandbox Code Playgroud)

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

谢谢!