Redirect Semua Request HTTP ke HTTPS

Redirect Semua Request HTTP ke HTTPS

Bagaimana caranya jika ingin me-redirect semua request berbasis HTTP yang tidak aman (http://www.example.com) ke HTTPS (https://www.example.com)? Halaman web menggunakan PHP, bagaimana ingin me-redirect menggunakan file .htaccess dengan Apache web server?

Mungkin pertanyaan di atas pernah terlintas dipikiran kamu. Hal pertama yang bisa dilakukan untuk me-redirect dari HTTP ke HTTPS adalah melakukannya dari level web server. Meski bisa dilakukan menggunakan PHP, tetapi pada solusi di post ini tidak melibatkan PHP sama sekali.

Redirect Request HTTP ke HTTPS

Kita bisa membuat redirect HTTP menggunakan file .htaccess. Proses redirect berbasis HTTP lebih baik daripada menggunakan redirect berbasis PHP. Faktanya redirect yang menggunakan hardcode bukan merupakan praktek yang baik dan seharusnya harus selalu kamu hindari.

Kunci utama disini untuk me-redirect adalah pada web server. Setiap kali pengunjung mengunjungi website kamu, hal pertama yang dilakukan adalah menjawab query dari web server, dan salah satu cara terbaik menangani redirect adalah sebelum code apa saja dijalankan pada background.

Dan untuk bisa menjalankan HTTPS tentunya website kamu harus sudah memiliki SSL Certificate dan melakukan setting padanya.

Setelah meng-install SSL certificate kamu sendiri, kamu harus selalu membuat 301 redirect untuk menghindari masalah duplikat konten. Hal ini sangat baik, pertama bisa menghindari pinalti website oleh Google, dan kedua memastikan untuk memberlakukan pengguna menggunakan versi yang lebih aman.

Untuk me-redirect semua request HTTP, kita bisa menambahkan kode seperti dibawah ini ke file .htaccess yang ada di direktori root:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com//$1 [R,L]
</IfModule>

Ganti example menjadi website kamu sendiri.

Jika kamu menggunakan Nginx web server, kamu bisa menggunakan kode seperti dibawah ini dan memasukannya pada konfigurasi vhost:

server {
listen 80;
listen [::]:80;
server_name dominio.com www.dominio.com;
return 301 https://dominio.com$request_uri;
}

Setelah itu, restart Nginx untuk mengyimpan perubahan dengan mengetik command:

service nginx reload

Test Redirect HTTP ke HTTPS

Untuk melakukan tes, sebelumnya kamu harus membersihkan browser cache yang kamu gunakan, lalu coba kamu ketik URL lama kamu:

http://www.example.com (ganti example menjadi domain website kamu)

Harusnya sudah di-redirect ke https://www.example.com.

Jika berubah, maka redirect HTTP ke HTTPS sudah berhasil.