Mixed Content (Karışık İçerik) Uyarısı
- Yayınlandı:
- Son teknik kontrol:
Mixed Content: The page at "https://…" was loaded over HTTPS, but requested an insecure resource "http://…"Belirtiler
- Adres çubuğunda kilit yerine uyarı simgesi veya “Güvenli değil” ifadesi
- HTTPS’e geçtikten sonra tasarım bozuldu, bazı menüler veya kaydırıcılar çalışmıyor
- Tarayıcı konsolunda “Mixed Content” ile başlayan uyarılar
- Bazı görseller eski sayfalarda http adresiyle görünüyor
Kısa cevap
Karışık içerik, https ile açılan bir sayfanın bazı dosyaları (görsel, betik, stil, yazı tipi) hâlâ http adresinden çağırması demektir. Tarayıcı görsel gibi dosyaları https’e yükseltmeye çalışır; betik ve stil dosyalarını ise engeller, bu yüzden tasarım bozulabilir ve adres çubuğundaki kilit simgesi kaybolabilir. WordPress’te neden neredeyse her zaman HTTPS geçişinden sonra veritabanında, temada veya bir eklenti ayarında kalan eski http adresleridir. Kalıcı çözüm, bu adresleri güvenli bir arama-değiştirmeyle https yapmaktır.
Önemli noktalar
- Karışık içerik bir sunucu hatası değil, sayfanın içindeki eski http bağlantılarıdır.
- Betik ve stil dosyaları engellenir; bu yüzden karışık içerik görünümü ve işlevi bozabilir.
- Site adresleri (Ayarlar › Genel) https değilse WordPress bağlantıları yanlış üretmeye devam eder.
- Veritabanındaki adresler düz metin aramasıyla değil, serileştirilmiş veriyi koruyan bir araçla değiştirilmelidir.
Kaynağı bulmak
Konsolu açın
F12 ile geliştirici araçlarını açıp Console sekmesine bakın. Her “Mixed Content” satırı, http ile çağrılan dosyanın tam adresini yazar.
Adresin nereden geldiğine bakın
wp-content/uploads ile başlıyorsa içerikteki görseldir (veritabanı). Tema klasörünü gösteriyorsa temaya gömülüdür. Dış bir alan adıysa bir eklenti veya gömülü kod çağırıyordur.
Site adreslerini kontrol edin
Ayarlar › Genel’deki “WordPress adresi” ve “Site adresi” https ile başlamalıdır. wp-config.php’de WP_HOME/WP_SITEURL tanımlıysa değer oradan gelir.
Veritabanındaki adresleri güvenle değiştirmek
WordPress bazı ayarları “serileştirilmiş” biçimde saklar; bu biçimde metnin uzunluğu da kayıtlıdır. phpMyAdmin’de düz metin arama-değiştirme bu uzunlukları bozar ve ayarların kaybolmasına yol açabilir. WP-CLI search-replace komutu serileştirilmiş veriyi doğru işler. Önce yedek alın, sonra deneme modunda çalıştırın:
wp search-replace 'http://alanadiniz.com' 'https://alanadiniz.com' --skip-columns=guid --dry-run
wp search-replace 'http://alanadiniz.com' 'https://alanadiniz.com' --skip-columns=guidguid sütunu atlanır: yazıların benzersiz kimliğidir ve RSS okuyucuların aynı yazıyı yeniden “yeni” saymaması için değiştirilmez. Komut satırı erişiminiz yoksa serileştirilmiş veriyi destekleyen bir arama-değiştirme eklentisi aynı işi yapar; yine önce yedek alın.
Temaya ve eklentilere gömülü adresler
- Tema dosyalarında veya özelleştirici CSS’inde http:// ile yazılmış görsel ve yazı tipi adreslerini https:// yapın ya da site içi göreli yol kullanın.
- Sayfa oluşturucu kullanıyorsanız onun “URL değiştir” aracını çalıştırın ve CSS dosyalarını yeniden oluşturun; bu araçlar kendi verilerini ayrıca saklar.
- Önbellek eklentisinin ve CDN’in önbelleğini temizleyin; aksi hâlde düzeltilmiş sayfa yerine eski kopya sunulur.