Redirect HTTP ke HTTPS di PHP

Diposting pada

Redirect HTTP ke HTTPS di PHP

Redirect HTTP ke HTTPS di PHP Ini merupakan tutorial tentang cara memaksa user / visitor web untuk menggunakan aplikasi PHP Anda dengan HTTPS, bukan HTTP. Selama beberapa tahun terakhir, HTTPS semakin populer – terutama sejak Google mengumumkan bahwa HTTPS digunakan sebagai sinyal peringkat untuk Search Engine Optimization (SEO) situs web.

Adapun definisi dari HTTPS yang dibahas adalah gabungan dari protocol HTTP dengan SSL/TSL protokol. Seluruh komunikasi yang dilakukan melalui HTTPS akan dienkripsi dan dianalisa dengan tujuan untuk keamanan ketika terjadi transaksi data melalui internet.

Ada tiga cara untuk melakukan Redirect HTTP ke HTTPS di PHP. Anda dapat menggunakan kode PHP untuk mengalihkan pengguna, Anda dapat menggunakan Redirect Apache atau Anda dapat menggunakan modul mod_rewrite  Apache.

1. Menggunakan PHP

Lihatlah kode PHP berikut:

//If the HTTPS is not found to be "on"
if(!isset($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != "on") {
    //Tell the browser to redirect to the HTTPS URL.
    header("Location: https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
    //Prevent the rest of the script from executing.
    exit;
}

Kode di atas cukup sederhana. Ia memeriksa variabel HTTPS dalam array superglobal $_SERVER  untuk melihat apakah sama dengan “on” atau tidak. Jika variabel tidak sama dengan “on”, maka system akan mengarahkan pengguna ke versi HTTPS dari URL saat ini. Kemudian menggunakan perintah exit()  untuk mencegah kode PHP mengeksekusi perintah selanjutnya.

Tentunya, Anda dapat menambahkan cuplikan PHP di atas ke fungsi khusus sehingga Anda dapat memanggilnya di bagian atas semua skrip Anda.

2. Menggunakan Redirect Apache

Jika Anda menggunakan server web Apache dan Anda memiliki akses ke file Virtual Hosts, maka Anda dapat menggunakan arahan Redirect:

<VirtualHost *:80>
	ServerName www.mywebsite.com
	Redirect / https://www.mywebsite.com/
</VirtualHost >
<VirtualHost *:443>
	ServerName www.mywebsite.com
	#configure your SSL
</VirtualHost >

Pada konfigurasi di atas, kita mengalihkan semua lalu lintas pada port 80 ke port 443 (port default untuk HTTPS).

3. Menggunakan mod_rewrite Apache

Jika Anda menggunakan shared hosting dan Anda tidak memiliki akses ke file konfigurasi Apache Anda, maka Anda dapat membuat file .htaccess  di root publik utama dari situs web Anda:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

File .htaccess  di atas akan “rewrite” URL ke versi HTTPS jika HTTPS ditemukan tidak aktif.

Demikian tutorial singkat tentang Redirect HTTP ke HTTPS di PHP. Semoga tutorial ini bermanfaat!