«تحويلات أكثر من اللازم» تعني أنّ قاعدتين تختلفان وتنقض كلٌّ منهما الأخرى: واحدةٌ ترسل http إلى https، وشيءٌ آخر يردّ https إلى http، فيستسلم المتصفّح بعد عشرين رحلةَ ذهابٍ وإياب.

انظر السلسلة

لا تخمّن من المتصفّح. اطبع كلّ وثبةٍ بحالتها ووجهتها.

curl -sIL https://yourdomain.com | grep -E "HTTP/|location:"

الزوجُ المتكرّر في ذلك الخرج هو القتال. وهو يسمّي الطرفين.

الأزواج الأربعة التي تسبّبه

  • عنوانُ موقعٍ في نظام المحتوى يخالف الخادم. ووردبريس مضبوطٌ على http والخادمُ يفرض https — فيصحّح كلٌّ منهما الآخر بلا نهاية.
  • قاعدتا www وغير www تشير كلٌّ منهما إلى الأخرى. اختر مضيفًا معياريًّا واحدًا ودع الآخر يحوّل إليه، مرّةً واحدة.
  • وسيطٌ في المقدّمة يُنهي التشفير. فيرى الخادم http صريحًا، فيقرّر أنّ الزائر يحتاج https، فيحوّل طلبًا هو https سلفًا. وعليه أن يقرأ X-Forwarded-Proto.
  • قاعدةُ شرطةٍ ختاميّة تضيف وأخرى تحذف.

ووردبريس على وجه التخصيص

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

ضبطُ الاثنين في wp-config.php يثبّتهما ويوقف قتالَ قيمة قاعدة البيانات للخادم.

وخلف وسيطٍ أو شبكةِ توصيل، أضف $_SERVER["HTTPS"] = "on"; حين يكون X-Forwarded-Proto هو https، قبل تحميل ووردبريس. فبدونه لا يستطيع الموقع أن يعرف أنّه آمنٌ سلفًا.
وفرّغ مخزن المتصفّح قبل الاختبار. فالتحويلُ 301 يُخزَّن تخزينًا شديدًا، وستظلّ ترى حلقةً لم تعد موجودة.