Cara Redirect HTTP ke HTTPS di Nginx dan Apache
Software Engineering Enthusiast | Blogger | Creator of RubyPedia.com
18 Oktober 2017

Server HTTP Apache atau Server Web/WWW Apache adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini menggunakan HTTP.

Nginx (dibaca: engine x) adalah server HTTP dan Proxy dengan kode sumber terbuka yang bisa juga berfungsi sebagai proxy IMAP/POP3. nginx dibuat oleh warga negara Rusia yang bernama Igor Sysoev pada tahun 2002 dan dirilis ke publik pada tahun 2004. Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya.

Pada tutorial kali ini kita akan belajar bagaimana menredirect sebuah trafic dari HTTP menjadi HTTPS di dalam web server Nginx dan Apache.

Kelebihan HTTPS

Kelebihan yang akan kita dapat ketika menggunakan https, bisa kita lihat di list berikut ini:

  • Keamanan : Seperti yang dijelas sebelumnya, HTTPS menggunakan protokol SSL dimana terdapat tiga tingkat pengamanan yang akan menjamin keamanan data selama proses komunikasi terjadi antara client dengan server.

  • Lebih Terpercaya : Dengan keamanan yang terjamin, tentu akan berimbas langsung kepada tingkat kepercayaan pengunjung atau konsumen bagi website ecommerce. Orang tidak akan ragu untuk mengirimkan data diri dan data sensitif lainnya ke web server.

  • SEO : Tak bisa dipungkiri, akhirnya mesin pencari akan lebih mengutamakan website yang keamanannya terjamin untuk ditampilkan pada halaman hasil pencarian, yakni website yang sudah dipasangkan protokol ssl. Google sebagai raksasa search engine juga telah mengeluarkan pernyataannya terkait diutamakannya website yang menggunakan protokol HTTPS.

Untuk menggunakan HTTPS kalian membutuhkan yang namanya SSL Cetificate, jika kalian menggunakan VPS sebagai server kalian bisa mendapatkan SSL Certificate secara gratis di Let’s Encrypt, silahkan install dan konfigurasi dengan Nginx atau Apache kalian.

Redirect HTTP to HTTPS using Apache mod_rewrite

Konfigurasi dibawah ini secara otomatis akan menredirect pengunjung ke HTTPS dari website kalian, buatlah sebuah .htaccess file di dalam root project kalian, berikut kodenya:

RewriteEngine On
# redirect http to https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Jika kalian ingin menredirect pengunjung ke versi HTTPS NON-WWW kalian bisa menggunakan kode berikut ini:

RewriteEngine On
# redirect all www to https non-www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
# redirect http non-www to https non-www
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Dan jika kalian ingin menredirect pengunjung ke versi HTTPS WWW kalian bisa menggunakan kode berikut ini:

RewriteEngine On
# redirect all non-www to https www
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://www.%1/$1 [L,R=301]
# redirect http www to https www
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Redirect HTTP ke HTTPS di Nginx

Nginx membutuhkan sebuah server block, untuk menredirect semua HTTP dan HTTPS NON-WWW ke HTTPS WWW kalian bisa menggunakan kode berikut ini didalam block server:

server {
  listen [::]:80;
  listen 80;

  server_name yourdomain.com www.yourdomain.com;

  # redirect http to https www
  return 301 https://www.yourdomain.com$request_uri;
}

server {
  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  server_name yourdomain.com;

  # SSL code

  # redirect https non-www to https www
  return 301 https://www.yourdomain.com$request_uri;
}

server {

  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  server_name www.yourdomain.com;

  # SSL code
  # other code
}

Dan untuk menredirect semua pengunjung ke HTTP and HTTPS WWW ke HTTPS NON-WWW, kalian bisa menggunakan kode berikut ini:

server {
  listen [::]:80;
  listen 80

  server_name yourdomain.com www.yourdomain.com;

  # redirect http to https non-www
  return 301 https://yourdomain.com$request_uri;
}

server {
  listen [::]:443 ssl http2;
  listen 443 ssl http2;

  server_name www.yourdomain.com;

  # SSL code

  # redirect https non-www to https www
  return 301 https://yourdomain.com$request_uri;
}

server {

listen [::]:443 ssl http2;
listen 443 ssl http2;

  server_name yourdomain.com;

  # SSL code
  # Other code
}


Referensi : https://www.rosehosting.com/blog/how-to-redirect-http-traffic-to-https-in-nginx-and-apache/


Blog ini telah dibaca sebanyak 555 kali
Web Server Linux System Administrator SysAdmin Apache Nginx .htaccess

Sekilas Tentang Penulis

Fika Ridaul Maulayya
Software Engineering Enthusiast | Blogger | Creator of RubyPedia.com

KOMENTAR

blog comments powered by Disqus
Tidak ada blog terkait.