Pada tutorial sebelumnya, kita belajar cara redirect http ke https menggunakan .htaccess. Nah, bila Anda membangun aplikasi menggunakan framework Laravel, bagaimana cara me-redirect aplikasi Anda dari protokol http ke https ?
Caranya cukup mudah, pertama buatlah class Middleware
pada direktori App\Http\Middleware
. Misal kita beri nama HttpsProtocol
, kemudian tuliskan perintah berikut :
<?php
namespace App\Http\Middleware;
use Closure;
class HttpsProtocol
{
public function handle($request, Closure $next)
{
if (!$request->secure() && env('APP_ENV') === 'production') {
return redirect()->secure($request->getRequestUri());
}
return $next($request);
}
}
Kemudian tambahkan middleware diatas pada rule Kernel.php
yang ada di direktori App\Http
. Sebagai contoh :
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
// Menambah middleware yang telah dibuat
\App\Http\Middleware\HttpsProtocol::class,
];
Pada kode diatas, saat aplikasi kita dijalankan dari protokol http
dan pada environment production
maka middleware akan mengarahkannya ke protokol https. Ini memungkinkan semua url aplikasi kita diakses dari protokol https tanpa terkecuali.
Kode diatas dapat Anda gunakan pada Laravel versi 5.x
. Selamat mencoba dan semoga bermanfaat.