/** Redirect 404's to home
*****************************************/
App::missing(function($exception)
{
// return Response::view('errors.missing', array(), 404);
return Redirect::to('/');
});
J'ai ce code dans mon fichier routes.php. Je me demande comment rediriger la page d'accueil en cas d'erreur 404. Est-ce possible?
Pour cela, vous devez ajouter quelques lignes de code à la méthode de rendu dans le fichier app/Exceptions/Handler.php qui ressemble à ceci:
public function render($request, Exception $e)
{
if($this->isHttpException($e))
{
switch ($e->getStatusCode())
{
// not found
case 404:
return redirect()->guest('home');
break;
// internal error
case '500':
return redirect()->guest('home');
break;
default:
return $this->renderHttpException($e);
break;
}
}
else
{
return parent::render($request, $e);
}
}
Je veux juste ajouter une suggestion pour le nettoyer un peu plus. Je voudrais créditer la réponse acceptée pour me faire commencer. À mon avis cependant, étant donné que chaque action dans cette fonction va renvoyer quelque chose, l’instruction switch et l’autre instruction créent un peu de folie. Donc, pour le nettoyer juste un peu, je ferais ce qui suit.
public function render($request, Exception $e)
{
if ($this->isHttpException($e))
{
if ($e->getStatusCode() == 404)
return redirect()->guest('home');
if ($e->getStatusCode() == 500)
return redirect()->guest('home');
}
return parent::render($request, $e);
}
vous pouvez juste faire ceci:
ouvrir: app\Exceptions\Handler.php
dans handler.php, vous pouvez remplacer ce code:
return parent::render($request, $exception);
par ceci: return redirect('/');
cela fonctionne beaucoup par exemple:
public function render($request, Exception $exception)
{
return redirect('/');
//return parent::render($request, $exception);
}