允许Laravel响应403而不是nginx

时间:2016-09-22 21:13:53

标签: php laravel nginx laravel-5

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

我在#include <stdio.h> #include <string.h> int main() { char str[] = "+5000,-9000,7jj4"; // We'll use this to allocate pointers. // char **tokens = NULL; int totalTokens = 0; // Returns first token char *token = strtok(str, ","); // Keep printing tokens while one of the // delimiters present in str[]. while (token != NULL) { printf("%s\n", token); token = strtok(NULL, "-"); // Allocate first/next pointer // if (! tokens) { tokens = malloc(sizeof(char *)); if (! tokens) { // Handle malloc() error... // } } else { // Allocate next pointer // tokens = realloc(tokens, (sizeof(char *) * totalTokens); if (! tokens) { // Handle realloc() error. // } } // Use the newly allocates pointer to malloc() a buffer // tokens[totalTokens] = malloc(sizeof(char) * (strlen(token) + 1)); if (! tokens[totalTokens]) { // Handle malloc() error. // } // Store token and next // strcpy(tokens[totalTokens++], token); } return 0; } 中有大多数异常类型的自定义处理程序,它们工作得很好,403除外。我将以下代码添加到app/Exceptions/Handler.php函数中的Handler.php file处理403:

render

但如果我导航到http://myapp.com/images/

,我仍然会看到默认的nginx禁止页面

此时我相当肯定这是一个我可能缺少的nginx配置,但我不是100%确定什么,在搜索网络后似乎无法找到解决方案。

由于

2 个答案:

答案 0 :(得分:1)

感谢大家的建议和评论,我能够找到并解决造成问题的原因。正如Elias Soares在评论中提到的那样,问题显然是在Laravel到达之前发生的。我进入了我的nginx配置文件并注意到以下行:

error_page 404 /index.php;

由于Laravel确实正确处理了404错误,我只是简单地为403添加了相同的东西:

error_page 403 /index.php;

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

谢谢!

答案 1 :(得分:-1)

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

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

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