"Çok fazla yönlendirme", iki kuralın anlaşamadığı ve birbirini bozduğu anlamına gelir: biri http'yi https'e yollar, başka bir şey https'i http'ye geri yollar ve tarayıcı yirmi gidiş dönüşten sonra pes eder.
Zinciri görün
Tarayıcıya bakıp tahmin etmeyin. Her sıçramayı durumu ve hedefiyle birlikte yazdırın.
curl -sIL https://yourdomain.com | grep -E "HTTP/|location:"
O çıktıda yinelenen çift, kavganın kendisidir. İki tarafı da adıyla söyler.
Buna yol açan dört çift
- Sunucuyla çelişen bir içerik sistemi site adresi. WordPress http'ye ayarlıyken sunucu https'i dayatıyordur - her biri ötekini düzeltir, sonsuza kadar.
- Birbirini gösteren www ve www'suz kurallar. Tek bir asıl sunucu adı seçin ve ötekini ona bir kez yönlendirin.
- Önde TLS'i sonlandıran bir vekil. Sunucu çıplak http görür, ziyaretçinin https'e ihtiyacı olduğuna karar verir ve zaten https olan bir isteği yönlendirir. Onun X-Forwarded-Proto'yu okuması gerekir.
- Sondaki eğik çizgiyi ekleyen bir kural ile onu kaldıran bir başkası.
Özellikle WordPress
define('WP_HOME','https://yourdomain.com');
define('WP_SITEURL','https://yourdomain.com');
İkisini de wp-config.php içinde ayarlamak onları sabitler ve veritabanındaki değerin sunucuyla kavgasını bitirir.
Bir vekilin ya da bir dağıtım ağının arkasındaysanız, X-Forwarded-Proto https olduğunda WordPress yüklenmeden önce
$_SERVER["HTTPS"] = "on"; ekleyin. O olmadan site, zaten güvenli olduğunu anlayamaz.Denemeden önce tarayıcı önbelleğini temizleyin. 301 sıkı biçimde önbelleğe alınır ve artık var olmayan bir döngüyü görmeyi sürdürürsünüz.