WordPress'i https'e geçirme, adres değiştirme ve yönlendirme döngüsü (ERR_TOO_MANY_REDIRECTS)

WordPress 58 görüntülenme Markdown

Sitenize bir SSL sertifikası kurdunuz ve artık https:// ile açılıyor. Ama WordPress hâlâ eski http:// adreslerini kullanıyor; sayfalar karma içerik uyarısı veriyor, giriş yapamıyorsunuz ya da tarayıcı "bu sayfa sizi çok fazla yönlendirdi" (ERR_TOO_MANY_REDIRECTS) diyor. Her biri ayrı bir adım gerektirir.

1. WordPress adreslerini değiştirin

Yönetim paneline girebiliyorsanız Ayarlar > Genel bölümünde "WordPress Adresi" ve "Site Adresi" alanlarını https:// ile başlayacak şekilde güncelleyin. Panele girmek mümkün değilse wp-config.php dosyasına şunları ekleyin (bunlar ayarı geçersiz kılar):

define('WP_HOME', 'https://ornek.com');
define('WP_SITEURL', 'https://ornek.com');

2. Veritabanındaki eski adresleri değiştirin

Yazılarınızın içindeki görsel ve bağlantılar eski adreste kalır. WP-CLI ile tek komutla:

wp search-replace 'http://ornek.com' 'https://ornek.com' --skip-columns=guid --dry-run
wp search-replace 'http://ornek.com' 'https://ornek.com' --skip-columns=guid

İlk komut deneme çalıştırmasıdır (--dry-run), değişiklik yapmaz. WP-CLI yoksa Better Search Replace gibi bir eklenti kullanın. Önce mutlaka yedek alın. WordPress içindeki seri veriler (tema ayarları) düz metin değiştirme ile bozulur; bu yüzden SQL'de elle REPLACE yapmayın.

3. http'yi https'ye yönlendirin

Sunucu tarafında yönlendirme yapın. Hosting'de alan adı ayarlarındaki Otomatik HTTPS yeniden yönlendirmesini etkinleştir kutusu bunu sağlar. VDS'te Nginx'te: yönlendirme makalesi. .htaccess kurallarına gerek yoktur ve hosting sunucumuzda zaten çalışmaz: .htaccess çalışmıyor.

ERR_TOO_MANY_REDIRECTS: döngü nereden geliyor?

Döngü, iki tarafın birbirinin tersini istemesi demektir. En sık sebepler:

  • Cloudflare "Flexible" SSL: Cloudflare ziyaretçiye https sunar ama sunucunuza http ile bağlanır. Sunucu "https'ye git" der, Cloudflare yine http ile döner ve döngü başlar. Cloudflare panelinde SSL/TLS modunu Full (strict) yapın ve sunucuda geçerli bir sertifika olduğundan emin olun.
  • Çift yönlendirme: Hem sunucu hem eklenti hem de wp-config.php aynı yönlendirmeyi yapıyorsa çakışabilir. Birini bırakın.
  • Ters proxy arkasında WordPress: Nginx ya da bir yük dengeleyici arkasında WordPress isteğin https olduğunu anlayamıyorsa kendini http sanar. wp-config.php'ye şunu ekleyin: if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; }
  • Önbellek ya da çerez: Gizli pencerede deneyin, önbellek eklentisini boşaltın.

Karma içerik (mixed content) uyarısı

Sayfa https ile açılıyor ama içinde http:// ile çağrılan görsel ya da betik varsa tarayıcı kilidi kaldırır. Tarayıcıda F12 > Konsol sekmesi hangi dosyaların http olduğunu listeler. Veritabanı değişikliğini yaptıktan sonra kalanlar tema dosyalarında ya da eklenti ayarlarında sabit yazılmış adreslerdir; onları elle düzeltin.

Sertifikanın kendisiyle ilgili tarayıcı hataları için SSL uyarısı makalesine, giriş döngüsü için yönetim paneline giremiyorum makalesine bakın.

Sık sorulanlar

Alan adını değiştirdim, site açılmıyor.

Önce yeni alan adının A kaydının sunucuya yöneldiğinden ve web sunucusunda yeni adın tanımlı olduğundan emin olun, sonra yukarıdaki adresleri güncelleyin. Eski adresten yeni adrese 301 yönlendirmesi koymak aramalardaki sıralamanızı korur.

search-replace sonrası tema ayarlarım bozuldu.

Düz SQL ile değiştirme seri verileri bozar. WP-CLI ya da eklenti bu verileri doğru işler. Bozulduysa yedekten dönüp doğru araçla yeniden yapın.

Hosting'de bu adımları kendim yapabilir miyim?

Evet; dosyalara FTP ile, veritabanına phpMyAdmin ile ulaşırsınız. WP-CLI hosting paketinde bulunmaz, eklentiyle yapın.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.