Page de maintenance / Page d'erreur

Pour rediriger tout le site vers une page de maintenance excepté la partie admin

Dans le fichier de routes.php on rajoute ce code en haut du fichier.

// Mode maintenance
if(Parametre::get('maintenance')==0){
	Route::get('maintenance', 'HomeController@maintenance');
 
	Route::any('{all}', function(){
		return Redirect::to('maintenance',302);
	})->where('all', '^(?!admin|connexion|deconnexion)(.*)');
 
}

De cette façon on peut mettre un code http 302 pour dire que toutes les pages ont été redirigé temporairement sur une page de maintenance au code http 503 Service unavailable.

Dans le controller

	public function maintenance(){
		return Response::view('maintenance', array(), 503);
	}

Page d'erreur

Lors d’une exception, le fameux Whoops! There was an error apparait ce qui n’est pas terrible.

Repérez le code suivant dans le fichier app/start/global.php

App::error(function(Exception $exception, $code)
{
	Log::error($exception);
});

Et modifiez le comme suit pour par exemple afficher la page de maintenance en cas d’erreur dans le code en mode prod

App::error(function(Exception $exception, $code)
{
	Log::error($exception);
	if(!Config::get('app.debug'))
		return Response::view('maintenance', array(), 500);
});