تحذيرات المحتوى المختلطة على موقع HTTPS
وصلت الصفحة عبر HTTPS ثم طلبت شيئًا عبر HTTP. تمنع المتصفحات الأجزاء النشطة وتسقط القفل للباقي.
Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure resource 'http://example.com/…'.
أسماء وحدة تحكم المتصفح عناوين URL المخالفة بالضبط ابدأ هناك ، وليس مع البرنامج المساعد. معظمهم من الروابط http:// المطلقة المخزنة في محتوى المنشور بواسطة محرر قام بحفظها قبل وجود الشهادة ، والحل الدائم هو استبدال البحث في قاعدة البيانات بدلاً من مرشح يعيد كتابة الإخراج إلى الأبد.
الأسباب الأرجح أولًا.
افحص القائمة بالترتيب. يتيح لك كل فحص تأكيد السبب أو استبعاده قبل تغيير أي شيء، لأن الحلول تختلف والتخمين يكلّف أكثر من تنفيذ أمر للتحقق.
| السبب | كيفية التحقق | الإصلاح |
|---|---|---|
| http://عناوين URL المخزنة في محتوى آخر | عرض مصدر الصفحة والبحث عن "http://" متبوعاً بالنطاق الخاص بك. الزيارات داخل ترميز الجسم بعد هي البيانات المخزنة ، وليس إخراج السمة. | قم بتشغيل قاعدة بيانات-استبدال البحث عبر جداول المحتوى. افعل ذلك باستخدام أداة تفهم البيانات التسلسلية ، لأن قيم القطعة والتعريفات تنكسر إذا تم تحرير طول السلسلة بسذاجة. |
| siteurl والمنزل لا يزال يقول http | قراءة كلا الخيارين مباشرة. إذا كان أي منهما يبدأ بـ http://, WordPress يبني عناوين URL للأصول الخاصة به وكل صفحة ترث المشكلة. | تحديث كلا الخيارين إلى نموذج https://. كل شيء WordPress يولد - النصوص ، الأنماط ، العلامات الأساسية - مشتق من هاتين القيمتين. |
| لا يمكن لـ WordPress أن يقول أنه وراء TLS | الدالة is_ssl () ترجع خاطئاً على موقع يتم تقديمه بوضوح عبر HTTPS. هذا هو توقيع وكيل عكسي ينهي TLS المنبع. | ثق في رأس البروتوكول المعاد توجيهه قبل تحميل WordPress ، لذلك is_ssl () يجيب بشكل صحيح. بدون ذلك ، يستمر WordPress في إنشاء روابط http:// بغض النظر عن ما تقوله قاعدة البيانات. |
| أصل طرف ثالث مشفّر | عنوان URL المحظور موجود على نطاق شخص آخر - خط ، نص برمجي ، مشغل مضمن - مع مخطط http:// صريح. | تغييره إلى https:// في السمة أو التضمين. إذا لم يكن لدى المضيف البعيد شهادة ، فيجب أن يكون الأصل مستضافة ذاتيًا أو يتم إسقاطه ؛ لا توجد طريقة لتحميله بأمان. |
الإصلاح خطوة بخطوة.
تفترض الأوامر توفر WP-CLI والوصول إلى سطر الأوامر. إن لم يتوفرا، تشرح كل خطوة الإجراء كي تنفذه من لوحة التحكم أو عبر SFTP.
الحصول على القائمة من المتصفح، وليس من تخمين
افتح وحدة التحكم على صفحة فاشلة. كل إدخال محتوى مختلط يعين المورد ، وعادة ما يحدد النمط عبرهم المصدر على الفور.
تحقق ما يعتقد WordPress عنوانها الخاص هو
هذين الخيارين يجلسان تحت كل شيء آخر ، لذلك يستحق التأكيد قبل تغيير أي محتوى.
wp option get siteurl wp option get home
إعادة كتابة عناوين URL المخزنة بأمان
قم بالتشغيل الجاف أولاً واقرأ التقرير. تخطي عمود GUID متعمد: إنه معرف وليس رابطًا ، وتغييره يعيد إخطار قارئات الخلاصة.
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid
تعليم WordPress هو وراء TLS
أضف هذا فوق سطر "إيقاف التحرير" في wp-config.php عندما ينهي الوكيل الشهادة.
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) { $_SERVER['HTTPS'] = 'on'; }التطهير وإعادة التحقق
يحمل HTML المخبأ عناوين URL القديمة. امسحه ، ثم أعد التحميل مع فتح وحدة التحكم وتأكد من أن القائمة فارغة.
wp cache flush
ما تتولاه المنصة عنك.
ينتهي TLS عند الوكيل ويمر nginx في الموقع البروتوكول الذي تمت إعادة توجيهه إلى PHP ، لذا يكون is_ssl () صحيحًا بدون تحرير wp-config.php ويقوم WordPress بإنشاء روابط https:// من الطلب الأول. يتم إصدار الشهادات وتجديدها تلقائيًا ، مما يزيل الموقف الذي ينمو فيه هذا الخطأ عادة: موقع يعمل على http لعدة أشهر وروابط مطلقة متراكمة.
الأسئلة الشائعة.
هل يمكنني فقط استخدام مكون إضافي يعيد كتابة عناوين URL على الإخراج؟
لماذا يتم كسر صورة واحدة فقط عندما يكون كل شيء آخر على ما يرام؟
القفل هناك ولكن وحدة التحكم لا تزال تشكو. أيهما صحيح؟
هل أحتاج إلى إعادة توجيه http إلى https أيضًا؟
إن لم يكن هذا هو السبب.
قد تبدو هذه الأخطاء متشابهة في المتصفح.