我将Laravel 5.5与NGINX 1.10.3和Varnish 5结合使用。
每次我键入一条不存在的路由时,laravel都会抛出404
异常,并显示我的自定义resources/views/errors/404.blade.php
。
问题是,当我将.php
附加到不存在的路由时,会得到一个
File not found.
来自NGINX的消息。即使将404.blade.php
附加到不存在的路线上,如何显示我的自定义.php
?
也许我应该重写清漆VCL以便切断尾随的.php
,然后将请求传递给后端(NGINX)?
答案 0 :(得分:1)
您的PHP脚本处理程序位置应如下所示,以实现所需的功能:
location ~ \.php$ {
try_files $uri /index.php =404;
...
}
try_files
对于通过Laravel index.php
处理程序(将执行其未发现的魔法)路由对不存在的.php脚本的请求至关重要。
答案 1 :(得分:0)
在您的 app / Exceptions / Handler.php
内public function render($request, Exception $exception)
{
if($this->isHttpException($exception)){
switch ($exception->getStatusCode()) {
case 400:
return redirect('/');
case 404:
return view('errors.404'); // your 404 error page
break;
}
}
return parent::render($request, $exception);
}