sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa CMS & Uygulamalar WordPress Sonsuz Yönlendirme Döngüsü Çözümü (To...
📝 CMS & Uygulamalar

WordPress Sonsuz Yönlendirme Döngüsü Çözümü (Too Many Redirects)

WordPress Too Many Redirects hatası Cloudflare Flexible SSL ve HTTPS zorlaması çakışmasından kaynaklanır. SSL modunu Full yapın.

📅 7 Ocak 2025 👁 61 görüntülenme ⏱ 6 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

Too Many Redirects Hatası Nedir?

Too Many Redirects (Çok Fazla Yönlendirme) hatası, tarayıcının bir sayfaya erişmeye çalışırken sonsuz bir yönlendirme döngüsüne girdiğinde gösterdiği hata mesajıdır. Tarayıcılar bu döngüyü genellikle 20-30 yönlendirme sonrasında fark ederek "ERR_TOO_MANY_REDIRECTS" (Chrome) veya "The page isn't redirecting properly" (Firefox) hatasıyla durdurur.

WordPress sitelerinde bu hatanın en yaygın nedeni SSL yapılandırması ile Cloudflare ayarları arasındaki çakışmadır: Cloudflare "Flexible SSL" modundayken WordPress HTTPS'e zorlamak için .htaccess veya eklentide yönlendirme kuralı tanımladığında döngü oluşur. Bunun dışında wp-config.php'de yanlış tanımlanmış site URL'leri, çakışan .htaccess kuralları, birden fazla SSL/redirect eklentisinin aynı anda aktif olması ve sunucu yapılandırma hataları da bu hataya yol açar.


Olası Nedenler

  • Cloudflare Flexible SSL + WordPress HTTPS zorlaması: Cloudflare HTTP ile sunucuya bağlanırken WordPress HTTPS'e yönlendiriyor.
  • wp-config.php'de yanlış URL: WP_HOME veya WP_SITEURL tanımları siteyle uyuşmuyor.
  • wp_options tablosunda hatalı URL: Veritabanında siteurl veya home değeri yanlış.
  • Çakışan .htaccess kuralları: Birden fazla yönlendirme kuralı birbirini tetikliyor.
  • Birden fazla HTTPS/redirect eklentisi: Really Simple SSL + başka bir eklenti çakışıyor.
  • Yanlış yapılandırılmış WordPress adresleri: Ayarlar > Genel'deki WordPress Adresi ve Site Adresi uyuşmuyor.

Çözüm Adımları

Cloudflare SSL Modunu "Full" veya "Full (Strict)" Yapma

Cloudflare Flexible SSL modu bu hatanın en yaygın nedenidir. SSL modunu Full olarak değiştirin.

# Cloudflare Dashboard > siteniz.com > SSL/TLS > Overview
# Mevcut: Flexible → Değiştirin: Full veya Full (Strict)

# Full: Cloudflare sunucuya HTTPS ile bağlanır (self-signed sertifika kabul edilir)
# Full (Strict): Cloudflare sunucuya HTTPS ile bağlanır (geçerli sertifika gerekir)

# Sunucunuzda SSL sertifikası yoksa önce Let's Encrypt kurun:
sudo certbot --nginx -d siteniz.com -d www.siteniz.com

wp-config.php URL Düzeltmesi

wp-config.php'deki WP_HOME ve WP_SITEURL sabit değerler döngüye yol açıyor olabilir.

sudo nano /var/www/html/wp-config.php
// Yanlış veya eksik tanım - şu satırları ekleyin/düzeltin:
define('WP_HOME', 'https://siteniz.com');
define('WP_SITEURL', 'https://siteniz.com');

// Cloudflare arkasındayken HTTPS zorlaması için:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}
if (isset($_SERVER['HTTP_CF_VISITOR'])) {
    $cf_visitor = json_decode($_SERVER['HTTP_CF_VISITOR']);
    if ($cf_visitor && $cf_visitor->scheme === 'https') {
        $_SERVER['HTTPS'] = 'on';
    }
}

Veritabanındaki URL'leri Düzeltme

WordPress URL'leri veritabanında wp_options tablosunda saklanır. MySQL ile düzeltin.

# MySQL bağlantısı
mysql -u wpkullanici -p wordpress_db

# Mevcut değerleri gör
SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl', 'home');

# Doğru değerleri ayarla
UPDATE wp_options SET option_value = 'https://siteniz.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://siteniz.com' WHERE option_name = 'home';

# Çıkış
exit;
# WP-CLI ile (daha hızlı)
wp option update siteurl 'https://siteniz.com' --path=/var/www/html
wp option update home 'https://siteniz.com' --path=/var/www/html
wp option get siteurl --path=/var/www/html

Nginx Ortamında .htaccess Sorunu Yoktur

Nginx .htaccess dosyasını okumaz; yönlendirme kuralları doğrudan Nginx konfigürasyonunda tanımlanır.

sudo nano /etc/nginx/sites-available/siteniz.conf
server {
    listen 80;
    server_name siteniz.com www.siteniz.com;
    # Cloudflare Full SSL kullanıyorsanız bu yönlendirmeyi KALDIRIN
    # return 301 https://$host$request_uri;
    # Cloudflare Flexible SSL kullanıyorsanız HTTP → HTTPS yönlendirmesi YOK
}

server {
    listen 443 ssl;
    server_name siteniz.com www.siteniz.com;
    # SSL yapılandırması...

    # WordPress için FastCGI Pass
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param HTTPS on;  # Cloudflare ile HTTPS zorlaması
        include fastcgi_params;
    }
}

Apache Ortamında .htaccess Düzeltmesi

WordPress .htaccess dosyasındaki yönlendirme kurallarını kontrol edin ve çakışmaları giderin.

sudo nano /var/www/html/.htaccess
# Cloudflare Full SSL + Apache kombinasyonu için doğru .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Cloudflare HTTPS tespiti - sonsuz döngüyü önler
RewriteCond %{HTTP:CF-Visitor} '"scheme":"https"'
RewriteRule ^ - [E=HTTPS:on]

# HTTP'den HTTPS'e yönlendir (Cloudflare Full SSL varsa bu satırları ekleyin)
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:CF-Visitor} !'"scheme":"https"'
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Eklentileri SSH ile Devre Dışı Bırakma

Really Simple SSL veya diğer redirect eklentileri çakışmaya neden oluyorsa devre dışı bırakın.

# Tüm eklentileri geçici olarak kapat
cd /var/www/html/wp-content
mv plugins plugins.bak
# Siteyi test et

# WP-CLI ile SSL eklentisini kapat
wp plugin deactivate really-simple-ssl --path=/var/www/html

# Tarayıcı önbelleğini temizle - Chrome
# Ctrl+Shift+Delete → Önbelleklenmiş görüntüler ve dosyalar
# Veya gizli/incognito modda test et

cPanel Ortamında

cPanel hosting üzerindeki WordPress sitelerinde redirect döngüsü çözümü.

# cPanel > File Manager > public_html/.htaccess düzenle
# cPanel > phpMyAdmin > wp_options tablosu > siteurl ve home değerlerini düzelt
# cPanel > SSL/TLS > AutoSSL aktif olmalı (Full SSL için)
# Cloudflare > SSL/TLS > Full veya Full Strict seçin

Özet ve Önleyici Tedbirler

  • Cloudflare kullanıyorsanız SSL modunu hiçbir zaman "Flexible" bırakmayın; "Full" veya "Full (Strict)" kullanın.
  • Yalnızca bir HTTPS yönlendirme mekanizması kullanın: eklenti, .htaccess veya sunucu yapılandırması - ikisi aynı anda olmasın.
  • WordPress'te site URL'lerini değiştirmeden önce veritabanı yedeği alın.
  • Cloudflare arkasındaki WordPress için wp-config.php'e CF-Visitor başlık kontrolü ekleyin.
  • Tarayıcı önbelleğini ve çerezlerini temizleyerek test edin; önbellek döngüyü sürdürebilir.
  • Staging ortamında SSL ve redirect değişikliklerini önce test edin.

İlgili Makaleler

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al
Etiketler: #cloudflare #wordpress #ssl #htaccess

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.