转载

Laravel 5 维护模式以及白名单

你可能会希望在维护模式下你自己依然能够访问你的网站,其实这可以通过编写一个检查维护模式的中间件来实现该功能。

默认情况下,Laravel使用的是 /Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode::class 中间件,这个我们可以在 /laravel/app/Http/Kernel.php 中看到。其中会触法 handle() 方法,该方法代码如下:

public function handle($request, Closure $next) {     if ($this->app->isDownForMaintenance()) {         throw new HttpException(503);     }      return $next($request); }

我们可以通过自定义一个中间件来替换该中间件。

运行命令 php artisan make:middleware CheckForMaintenanceMode ,该命令会生成文件  app/Http/Middleware/CheckForMaintenance.php

打开该文件并修改其中的 handle() 方法使其满足你的要求,如:

public function handle($request, Closure $next) {     if ($this->app->isDownForMaintenance() &&         !in_array($request->ip(), ['123.123.123.123', '124.124.124.124']))     {         return response('Be right back!', 503);     }      return $next($request); }

其中的IP数组即为白名单,不管是否处于维护模式,数组中的IP都可以访问网站。

剩下的就是把我们自定义的维护模式中间件替换Laravel自带的中间件了,打开 app/Http/Kernel.php ,并把其中的

Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode::class

替换为:

App/Http/Middleware/CheckForMaintenanceMode::class

完成上面的步骤即可实现维护模式下的白名单功能了,希望能够帮到你。

英文原文: toniperic.com

正文到此结束
Loading...