Redirect HTTP ke HTTPS di Laravel

Laravel, PHP, Tutorial - 08 Sep 2020

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.