---
title: "Cara Redirect HTTP ke HTTPS lewat .htaccess"
description: "Kode .htaccess siap pakai untuk redirect HTTP ke HTTPS dengan 301, versi www dan non-www, versi di balik Cloudflare, serta cara mengujinya."
url: "https://nivelva.com/insight/cara-redirect-http-https-lewat-htaccess"
category: "Website \u0026 Domain"
tags: ["htaccess","https","redirect 301","apache","ssl"]
author: "Theresia Candiawan"
published: "2026-11-07T14:03:00+07:00"
updated: "2026-11-07T14:03:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Cara Redirect HTTP ke HTTPS lewat .htaccess

> **Jawaban singkat:** Aktifkan RewriteEngine, tambahkan RewriteCond %{HTTPS} off, lalu RewriteRule ke https://%{HTTP_HOST}%{REQUEST_URI} dengan flag R=301. Letakkan di bagian atas .htaccess, sebelum aturan WordPress, lalu uji dengan curl -I.

Sertifikat SSL sudah terpasang, tapi pengunjung yang mengetik alamat tanpa `https://` masih mendarat di versi HTTP? Kamu perlu redirect. Di hosting yang memakai Apache atau LiteSpeed (umum di cPanel), caranya cukup menambahkan beberapa baris di file `.htaccess`.

Redirect permanen (301) memastikan setiap pengunjung, tautan lama, dan mesin pencari diarahkan ke versi HTTPS yang sama. Panduan ini memberi kode siap pakai untuk beberapa kondisi, karena satu kode yang sama tidak selalu cocok untuk semua setup.

## Apa yang perlu disiapkan sebelum mulai?

Pastikan dua hal ini sudah beres, karena redirect ke HTTPS tanpa sertifikat valid justru membuat pengunjung melihat peringatan keamanan:

- Sertifikat SSL aktif dan valid untuk domain utama dan `www`. Di cPanel, cek menu SSL/TLS Status, atau ikuti [cara pasang SSL gratis di cPanel dengan AutoSSL](https://nivelva.com/insight/cara-pasang-ssl-gratis-cpanel-autossl).
- Kamu bisa membuka `https://domainkamu.com` secara manual tanpa peringatan.

Kalau hostingmu menyediakan tombol **Force HTTPS Redirect** di menu Domains cPanel, itu cara paling sederhana. Kode `.htaccess` berguna bila tombol itu tidak ada atau kamu butuh aturan yang lebih spesifik.

## Bagaimana cara membuat redirect HTTP ke HTTPS?

### 1. Backup file .htaccess

Buka **File Manager** di cPanel, masuk ke folder `public_html` (atau folder root domain), lalu aktifkan opsi **Show Hidden Files** di Settings karena nama file berawalan titik disembunyikan secara bawaan. Unduh salinan `.htaccess` yang ada. Kalau file belum ada, buat file baru bernama `.htaccess`.

### 2. Tambahkan kode redirect dasar

Letakkan kode ini di **paling atas** file:

```apache
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
```

Artinya: bila permintaan tidak lewat HTTPS, alihkan ke alamat yang sama (domain dan path dipertahankan) dengan skema `https://`, memakai kode 301 yang berarti permanen. `%{REQUEST_URI}` sudah membawa path, dan query string ikut terbawa secara otomatis.

### 3. Pilih versi www atau non-www sekaligus

Sebaiknya website hanya punya satu alamat utama. Kalau memilih **tanpa www**, gunakan kode ini sebagai pengganti kode dasar:

```apache
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
```

Kalau memilih **dengan www**:

```apache
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,R=301]
```

Dengan cara ini, empat variasi alamat (`http://`, `http://www.`, `https://`, `https://www.`) berakhir di satu alamat dalam satu kali redirect. Pastikan pilihanmu sama dengan alamat situs di pengaturan WordPress atau aplikasi.

### 4. Kalau website di balik Cloudflare atau proxy

Bila domain memakai proxy Cloudflare dengan mode SSL **Flexible**, koneksi dari Cloudflare ke server memakai HTTP. Server selalu melihat `%{HTTPS} off` dan terus mengalihkan, sehingga terjadi redirect berulang. Solusi terbaiknya adalah mengganti mode SSL ke **Full (strict)** karena server sudah punya sertifikat. Bila sementara harus tetap di belakang proxy yang mengirim header `X-Forwarded-Proto`, gunakan kondisi ini:

```apache
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
```

Gejala dan penyelesaian redirect berulang dibahas lebih lengkap di [error too many redirects setelah pindah HTTPS](https://nivelva.com/insight/error-too-many-redirects-pindah-https).

### 5. Jaga urutan dengan aturan WordPress

WordPress menulis blok `# BEGIN WordPress` sampai `# END WordPress` di `.htaccess`. Letakkan kode redirect **di atas** blok itu, jangan di dalamnya, karena isi blok bisa ditulis ulang saat kamu menyimpan pengaturan permalink.

### 6. Uji hasilnya

Buka jendela penyamaran di browser dan ketik alamat berawalan `http://`. Atau, lebih pasti, gunakan terminal:

```
curl -I http://domainkamu.com/kontak
```

Hasil yang benar menampilkan `HTTP/1.1 301 Moved Permanently` dan baris `Location: https://domainkamu.com/kontak`. Ulangi untuk versi `www` dan pastikan hanya ada satu kali lompatan ke alamat akhir.

Browser menyimpan redirect 301 di cache cukup lama. Kalau saat uji coba kamu salah menulis tujuan, browser bisa terus membuka alamat yang salah meski kode sudah diperbaiki. Karena itu, pengujian lewat `curl` atau jendela penyamaran lebih bisa dipercaya daripada tab biasa.

## Bagaimana kalau beberapa folder perlu dikecualikan?

Kadang ada folder yang sengaja dibiarkan di HTTP, misalnya endpoint lama untuk perangkat yang belum mendukung HTTPS. Tambahkan kondisi pengecualian sebelum `RewriteRule`, contohnya:

```apache
RewriteCond %{REQUEST_URI} !^/api-lama/
```

Gunakan pengecualian seperlunya saja. Setiap folder yang tetap di HTTP berarti data di folder itu dikirim tanpa enkripsi.

## Ringkasan kode sesuai kondisi

| Kondisi | Kode yang dipakai |
|:--|:--|
| Hosting biasa, hanya paksa HTTPS | Kode dasar langkah 2 |
| Sekaligus seragamkan ke non-www | Kode non-www langkah 3 |
| Sekaligus seragamkan ke www | Kode www langkah 3 |
| Di balik proxy yang mengirim X-Forwarded-Proto | Kode langkah 4 |
| Punya akses konfigurasi server (VPS) | Directive `Redirect` di VirtualHost port 80 |

Untuk pengguna VPS dengan akses ke konfigurasi Apache, dokumentasi Apache sendiri menyarankan memakai directive `Redirect` sederhana di blok VirtualHost port 80 bila memungkinkan, karena lebih ringan daripada `mod_rewrite` di `.htaccess` yang dibaca pada setiap permintaan.

## Pertanyaan yang sering diajukan

### Kenapa harus 301, bukan 302?

301 berarti pindah permanen. Mesin pencari memindahkan sinyal peringkat ke alamat HTTPS dan browser mengingat pengalihan itu. 302 berarti sementara dan sebaiknya hanya dipakai untuk uji coba.

### Website jadi error 500 setelah mengedit .htaccess, apa yang terjadi?

Biasanya salah ketik atau modul rewrite tidak aktif. Kembalikan file dari backup, lalu tempel ulang kode dengan teliti. Pesan detailnya bisa dilihat di error log cPanel.

### Apakah redirect ini mengganggu perpanjangan SSL gratis?

Umumnya tidak. Validasi Let's Encrypt lewat HTTP mengikuti redirect ke HTTPS. Masalah baru muncul bila ada aturan lain yang memblokir folder `/.well-known/`.

### Perlukah memasang HSTS setelah redirect berjalan?

HSTS membuat browser langsung memakai HTTPS tanpa mencoba HTTP lebih dulu. Pasang setelah yakin semua subdomain siap HTTPS, dan mulai dengan nilai max-age kecil.

### Apakah redirect ini memengaruhi SEO?

Redirect 301 yang konsisten ke satu alamat justru membantu, karena tidak ada lagi versi ganda halaman yang sama. Perbarui juga properti di Google Search Console dan sitemap ke versi HTTPS.

Checklist sebelum selesai:

- Sertifikat valid untuk domain utama dan www.
- Kode redirect berada di atas blok WordPress.
- `curl -I` menunjukkan 301 ke alamat HTTPS akhir dalam satu lompatan.
- Alamat situs di pengaturan aplikasi sudah memakai `https://`.
- Tidak ada peringatan mixed content di halaman penting.

## Sumber

- <https://httpd.apache.org/docs/2.4/rewrite/remapping.html>
- <https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html>
- <https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/cara-redirect-http-https-lewat-htaccess
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
