Cara Mengatasi ERR_TOO_MANY_REDIRECTS WordPress dan Cloudflare

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.

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 CloudflarePengunjung → CloudflareCloudflare → OriginRisiko loop?
FlexibleHTTPSHTTP (tanpa enkripsi)Tinggi, bila origin memaksa HTTPS
FullHTTPSHTTPS (sertifikat tidak divalidasi)Rendah
Full (strict)HTTPSHTTPS (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

  1. 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).
  2. 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.

  3. Periksa mode SSL di dashboard Cloudflare: SSL/TLS → Overview. Jika tertulis Flexible, Anda menemukan tersangka utama.
  4. 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, dan curl -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

SituasiLangkah berikutnya
Loop berhenti saat Cloudflare dijeda, kembali saat diaktifkanMode SSL masih Flexible atau aturan redirect Cloudflare masih ganda
Loop tetap ada meski Cloudflare dijedaPeriksa URL WordPress, .htaccess, dan plugin redirect di server
Loop hanya di wp-adminPeriksa aturan paksa HTTPS khusus area admin dan plugin keamanan
Setelah diperbaiki muncul error SSL, bukan loopItu 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

Cookie Consent