4 Cara Redirect HTTPS Di Laravel
Rumahit.ID - Secure Sockets Layer (SSL) adalah teknologi keamanan standar untuk membuat tautan terenkripsi antara server dan klien biasanya server web (situs web) dan browser, atau server email dan klien email (misalnya Outlook).
SSL memungkinkan informasi sensitif seperti nomor kartu kredit, nomor jaminan sosial, dan kredensial login untuk dikirimkan secara aman. Biasanya, data yang dikirim antara browser dan server web dikirim dalam teks biasa membuat Anda rentan terhadap penyadapan. Jika penyerang dapat mencegat semua data yang dikirim antara browser dan server web, mereka dapat melihat dan menggunakan informasi itu.
Salah satu ciri sebuah website menggunakan protokol SSL adalah dengan diawalinya https di awal sebuah alamat website, misalnya https://rumahit.id dan terdapat icon gembok hijau terkunci di depan alamat sebuah website.
Pada website yang dibangun menggunakan framework seperti laravel secara default ketika pengunjung mengetikan alamat domain , maka akan mengakses protokol http meskipun di hosting langganan kita sudah di instal sertifikat SSL. Pada address bar, tulisan https akan muncul jika pengunjung mengetikan nama domain lengkap dengan diawali protokol https. Dan tentu saja hal itu akan meribetkan pengunjung website kita.
Untuk mengatasi kasus diatas, maka kita memerlukan metode redirect (pengalihan) agar website kita yang dibangun dengan laravel secara otomatis mengakses protokol https meskipun pengunjung hanya menuliskan alamat domain saja di address bar. Pada pembahasan kali ini, saya hanya akan membahas 4 cara redirect HTTPS di website yang menggunakan framework Laravel.
Cara 1 : Mengaktifkan Force HTTPS Redirect di Control Panel Hosting
Cara yang pertama adalah cara yang bisa dibilang paling mudah, karena tidak perlu melakukan coding. Untuk mengaktifkan https otomatis di website bisa menggunakan fitur force https redirect. Fitur ini sudah tersedian di control panel hosting kalian.
Silahkan login ke akun CPanel kalian kemudian pilih pada menu Domains. Selanjutnya akan muncul daftar domain dan subdomain milik teman-teman. Pilih website yang akan dialihkan ke https secara otomatis dengan cara mengaktifkan (menggeser slide ke posisi on) pada menu force https redirect.
Silahkan mencoba untuk mengakses kembali website kalian dengan memasukkan nama domain saja. Hasilnya secara otomatis website kita dialihkan ke protokol https.
Cara 2 : Redirect HTTPS dengan .htaccess di Laravel
Bagi beberapa pengguna apache mungkin pernah mengalami bagaimana redirect http ke https menggunakan .htaccess di Laravel. Karena disini kita punya 2 pekerjaan yang harus di kerjakan, yakni- Bagaimana cara redirect http ke https
- Menghapus public url (default di laravel, url selalu ada public nya)
OK langsung saja kita setting. Pertama silakan masuk ke VPS / shared hosting kalian masing - masing. Sesuaikan dengan cara kalian mengakses hosting, bisa pakai ssh atau file manager di cpanel. Kemudian buat / edit file .htaccess di dalam root folder (public_html) seperti berikut ini.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # Force SSL RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] # Remove public folder form URL RewriteRule ^(.*)$ public/$1 [L] </IfModule>
Penjelasannya, pertama .htaccess menentukan base dari folder app / web nya. Kemudian htaccess akan meredirect http ke https yang setelah itu htaccess akan melemparkan ke folder public dan menghapus / rewrite url public nya.
Sehingga jika setting seperti diatas, contoh ketika kita masuk ke url rumahit.id maka kita akan diarahkan ke https://rumahit.id
Cara 3 : Menambahkan modifikasi kode di file filters.php
Jika kedua cara diatas tidak berhasil, cara yang ketiga adalah dengan menambahkan baris kode pada file filters.php . File tersebut terletak di dalam folder App pada direktori laravel. Cukup tambahkan kode dibawah ini :App::before(function($request) { if( ! Request::secure()) { return Redirect::secure(Request::path()); } });
Cara 4 : Dengan membuat kelas di Middleware
Buka folder website kalian, arahkan ke folder app/Http/Middleware kemudian buat sebuah file dengan nama HttpsProtocol.php . Isikan kode dibawah ini :namespace MyApp\Http\Middleware; use Closure; use Illuminate\Support\Facades\App; class HttpsProtocol { public function handle($request, Closure $next) { if (!$request->secure() && App::environment() === 'production') { return redirect()->secure($request->getRequestUri()); } return $next($request); } }
Kemudian, terapkan middleware ini untuk setiap permintaan yang menambahkan pengaturan aturan pada file Kernel.php, seperti:
protected $middleware = [ 'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode', 'Illuminate\Cookie\Middleware\EncryptCookies', 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse', 'Illuminate\Session\Middleware\StartSession', 'Illuminate\View\Middleware\ShareErrorsFromSession', // appending custom middleware 'MyApp\Http\Middleware\HttpsProtocol' ];
Pada contoh di atas, middleware akan mengalihkan setiap permintaan ke https jika:
- Permintaan saat ini datang tanpa protokol aman (http)
- Jika lingkungan Anda sama dengan production. Jadi, sesuaikan saja pengaturan sesuai dengan preferensi Anda.
Itulah 4 Cara Redirect HTTPS Di Laravel. Selalu menggunakan protokol SSL agar websitemu tetap aman dan menambah pengalaman terbaik bagi pengunjung setia websitemu.