Anda membuka situs WordPress dan browser menyerah dengan pesan ERR_TOO_MANY_REDIRECTS: halaman ini dialihkan terlalu banyak kali. Situs tidak rusak total — ia justru “terlalu rajin” mengalihkan, berputar tanpa henti antara Cloudflare dan server Anda.
Daftar Isi
Jawaban Singkat
Penyebab paling umum: Cloudflare diatur ke mode SSL Flexible, sementara server asal (atau plugin WordPress) memaksa semua HTTP menjadi HTTPS. Cloudflare mengambil dari origin lewat HTTP, origin mengalihkan ke HTTPS, Cloudflare meneruskan pengalihan itu ke browser, browser meminta lagi lewat HTTPS — dan lingkaran berulang. Solusinya: pasang sertifikat di origin dan ubah mode Cloudflare ke Full (strict).
Memahami Loop-nya
| Mode Cloudflare | Pengunjung → Cloudflare | Cloudflare → Origin | Risiko loop? |
|---|---|---|---|
| Flexible | HTTPS | HTTP (tanpa enkripsi) | Tinggi, bila origin memaksa HTTPS |
| Full | HTTPS | HTTPS (sertifikat tidak divalidasi) | Rendah |
| Full (strict) | HTTPS | HTTPS (sertifikat divalidasi) | Rendah, dan paling aman |
WordPress memutuskan perlu mengalihkan atau tidak berdasarkan apa yang dilihat server. Bila server menerima HTTP (karena Cloudflare mengambil lewat HTTP), tetapi alamat situs di WordPress adalah https, WordPress menganggap permintaan itu “belum aman” dan mengalihkan ke https — persis lingkaran di atas.
Diagnosis: Pastikan Dulu Biang Masalahnya
- Jeda Cloudflare sementara dari dashboard (Pause Cloudflare on Site). Bila loop berhenti saat dijeda, Cloudflare memang terlibat — lanjut ke langkah perbaikan. Bila loop tetap ada, penyebabnya ada di WordPress/server sendiri (URL salah, aturan redirect ganda).
- Periksa rantai redirect dengan curl:
curl -I http://domainanda.com/Respons yang sehat: satu 301 ke https, lalu 200. Rantai 301 berulang ke alamat yang sama adalah bukti loop.
- Periksa mode SSL di dashboard Cloudflare: SSL/TLS → Overview. Jika tertulis Flexible, Anda menemukan tersangka utama.
- Periksa URL WordPress: Pengaturan → Umum, kolom Alamat WordPress dan Alamat Situs. Keduanya harus konsisten (pilih satu versi www atau non-www, dan https).
Langkah 1: Pasang Sertifikat di Origin
Mode Full (strict) mensyaratkan sertifikat yang valid di server asal. Sertifikat gratis Let's Encrypt dari penyedia hosting atau sertifikat Cloudflare Origin CA (hanya dipercaya Cloudflare) keduanya bisa dipakai untuk keperluan ini. Tanpa sertifikat di origin, Anda hanya bisa memakai mode Full (yang tidak memvalidasi sertifikat) — lebih baik daripada Flexible, tetapi bukan yang paling aman.
Langkah 2: Ubah Mode SSL ke Full (strict)
Di dashboard Cloudflare: SSL/TLS → Overview → Full (strict). Tunggu sebentar, lalu muat ulang situs di jendela privat (mode privat penting agar cache browser lama tidak menipu Anda). Dalam banyak kasus, loop berhenti di titik ini.
Langkah 3: Bersihkan Redirect Ganda
Satu situs hanya butuh satu tempat yang memaksa HTTPS. Bila Anda memakai ketiganya sekaligus, loop mudah kembali:
- Always Use HTTPS di Cloudflare (SSL/TLS → Edge Certificates), atau
- Aturan redirect HTTP→HTTPS di Nginx/Apache, atau
- Plugin WordPress yang memaksa HTTPS.
Pilih satu sebagai penegak utama, nonaktifkan yang duplikatif, dan periksa juga Page Rules/Redirect Rules Cloudflare yang mungkin mengalihkan kembali ke URL asal.
Langkah 4: Bila Tidak Bisa Masuk wp-admin
Loop yang mengunci dashboard bisa diperbaiki lewat wp-config.php (di atas baris That's all, stop editing!):
define( 'WP_HOME', 'https://domainanda.com' );
define( 'WP_SITEURL', 'https://domainanda.com' );
Ganti domainanda.com dengan domain Anda. Baris ini mengesampingkan URL di database; setelah situs pulih, Anda bisa mempertahankannya atau memperbaikinya dari dashboard.
Verifikasi Hasil
Perbaikan berhasil bila:
- Situs terbuka normal di jendela privat tanpa pesan redirect.
curl -I http://domainanda.com/menunjukkan satu 301 ke https, dancurl -I https://domainanda.com/menunjukkan 200.- wp-admin bisa dibuka dan tidak lagi berputar.
- Ikon gembok tampil dan tidak ada peringatan konten campuran di halaman utama.
Troubleshooting Lanjutan
| Situasi | Langkah berikutnya |
|---|---|
| Loop berhenti saat Cloudflare dijeda, kembali saat diaktifkan | Mode SSL masih Flexible atau aturan redirect Cloudflare masih ganda |
| Loop tetap ada meski Cloudflare dijeda | Periksa URL WordPress, .htaccess, dan plugin redirect di server |
| Loop hanya di wp-admin | Periksa aturan paksa HTTPS khusus area admin dan plugin keamanan |
| Setelah diperbaiki muncul error SSL, bukan loop | Itu masalah sertifikat origin (lihat artikel Error 525/526 di situs ini) |
FAQ
Apakah Flexible boleh dipakai bila origin tidak punya sertifikat?
Bisa sebagai keadaan darurat, tetapi koneksi Cloudflare→origin tidak terenkripsi dan loop mudah terjadi bila origin memaksa HTTPS. Memasang sertifikat gratis lalu pindah ke Full (strict) adalah solusi yang benar.
Kenapa harus dites di jendela privat?
Karena browser menyimpan redirect lama di cache. Jendela privat memastikan Anda menguji konfigurasi terbaru, bukan cache redirect lama.
Apakah plugin Really Simple SSL menyebabkan loop?
Plugin itu sendiri bukan penyebab utama bila mode SSL sudah benar; tetapi bila plugin memaksa HTTPS sementara Cloudflare masih Flexible, kombinasinya menciptakan loop. Perbaiki mode SSL dulu.
Kesimpulan
Redirect loop WordPress–Cloudflare hampir selalu soal ketidakcocokan: pengunjung lewat HTTPS, origin menerima HTTP, lalu origin memaksa kembali ke HTTPS. Pasang sertifikat di origin, ubah ke Full (strict), rapikan redirect ganda menjadi satu penegak, dan verifikasi dengan curl serta jendela privat. Urutan itu menghentikan loop tanpa perlu menebak.
Referensi
- Cloudflare — dokumentasi mode SSL/TLS (Flexible, Full, Full (strict)).
- WPBeginner — Fix Error Too Many Redirects in WordPress: wpbeginner.com — Too Many Redirects