laravel 访问不存在的路由跳转问题!
程序员文章站
2022-05-31 14:45:10
...
laravel5.2 访问一个不存在的路由时,如何跳转到404,LNMP环境,要怎么配置?
回复内容:
laravel5.2 访问一个不存在的路由时,如何跳转到404,LNMP环境,要怎么配置?
理论上你把 debug
关了,线上环境是会自动到 404
的。
你是想要「跳转到 404 页」还是「显示 404 页」?如果是要跳转的话,请配置 app/Exceptions/handler.php,并在 NotFoundException 被抛出时返回一个 Redirect 响应。
1、如果你只是想抛出404错误,debug开关可以满足你;
2、如果你想处理异常或自定义异常,可参照如下;
在laravel项目根目录下的app
下的Exceptions
目录下的Handler.php
文件;我们可以在这里自定义异常
以及处理异常
;
最常见的莫过于
ModelNotFoundException
下面是一个Demo:
route:
vikin.cc/article/8
Handler file:
//处理Http响应异常
public function render($request, Exception $e)
{
switch($e){
//使用类型运算符 instanceof 判断异常(实例)是否为 ModelNotFoundException
case ($e instanceof ModelNotFoundException):
//进行异常处理
return $this->renderException($e);
break;
default:
return parent::render($request, $e);
}
}
//处理异常
protected function renderException($e)
{
switch ($e){
case ($e instanceof ModelNotFoundException):
//自定义处理异常,此处我们返回一个404页面
return view('errors.404');
break;
default:
//如果异常非ModelNotFoundException,我们返回laravel默认的错误页面
return (new SymfonyDisplayer(config('app.debug')))
->createResponse($e);
}
}
通过上述案例,你可以轻松的处理异常,并给用户一个友好的提示!
推荐阅读
-
Laravel路由研究之domain解决多域名问题的方法示例
-
Laravel路由研究之domain解决多域名问题的方法示例
-
ThinkPHP访问不存在的模块跳转到404页面的方法
-
angular2中router路由跳转navigate的使用与刷新页面问题详解
-
SQL Server不存在或访问被拒绝问题的解决第1/3页
-
ThinkPHP访问不存在的模块跳转到404页面的方法
-
VUE怎么解决路由跳转时及跳转到外部链接,再返回的页面缓存问题
-
关于springboot正常启动,路由却无法正常访问的问题
-
解决vue单页路由跳转后scrollTop的问题
-
路由跳转,router-view不显示组件页面的几个可能出现的问题及解决方案