无法在prod环境中显示404错误

时间:2016-06-10 10:37:54

标签: symfony

当我尝试在开发环境中抛出一个简单的throw $this->NotFoundHttpException('We do not currently have a website configured at this address. Please visit our website for more information or contact our support team');时,它工作正常。但是当我在prod环境中做同样的事情时,我得到500服务器错误。 enter image description here

有什么想法吗?

以下是我的dev和prod日志文件的屏幕截图

enter image description here

enter image description here

注意:只有当我在prod env的url中使用www时才会发生500错误。使用任何其他单词,例如。 nike,这就是我得到的 enter image description here

以下是普通www.blore.eduflats.com网址的开发环境结果 enter image description here

2 个答案:

答案 0 :(得分:2)

根据symfony documentation,要从控制器返回404,您需要执行以下操作:

throw $this->createNotFoundException('The product does not exist');

然而,你有

throw $this->NotFoundHttpException

您看到的错误告诉您NotFoundHttpException不存在。要解决您的问题,只需将NotFoundHttpException替换为createNotFoundException

即可

答案 1 :(得分:0)

你致电Eduflas.. UniversityResolver->NotFoundHttpException(); 如果你想像这样转发异常,你应该声明它。 Symfony控制器有$this->createNotFoundException('Something Not found'); 你可以像这样抛出404:

use Symfony\Component\HttpKernel\Exception\NotFoundHttpException
//...
throw new NotFoundHttpException("Not found");

使用这种方式确保存在Exception并对其进行测试。 无论如何清除您的作品并开发缓存以确保您使用“相同的代码”。 最后我想到的是 - 它可能会覆盖错误页面,你可以在你的error.html.twig或error404.html.twig上创建一些内容。你有不同的页面。

修改 当我输入你的http://blore.eduflats.com/

“array(29){[”HTTP_HOST“] => string(18)”blore.eduflats.com“[”HTTP_USER_AGENT“] => s ...”

无论如何你的开发环境。也有错误,所以它如何工作prod env ... 如果你在dev中抛出NotFoundException,你应该得到symfony调试器页面和这个错误。在porduction中这个错误是用ExceptionController捕获并显示空白错误页面(用户不应该看到异常,只有500错误)