ركّبت SSL والموقع لسه بيقول «غير آمن» أو القفل مش ظاهر، ليه؟
غالبًا ده «محتوى مختلط» (Mixed content): الصفحة نفسها https، بس فيها صور أو ملفات CSS أو سكريبت لسه بتتحمّل من http. المتصفح بيشيل القفل أو يمنع الملفات دي. الحل إنك تغيّر كل الروابط القديمة لـ https في قاعدة البيانات والقالب، وتخلّي الموقع يحوّل http لـ https بـ 301.
التشخيص
هتعرف إن عندك المشكلة لو:
- جنب الرابط مكتوب «غير آمن» أو مفيش قفل مع إن الشهادة متركبة
- Console في المتصفح فيه تحذير Mixed Content
- بعض الصور أو الخطوط اختفت بعد التحويل لـ https
- الموقع بيفتح بـ http و https الاتنين
السبب غالبًا:
روابط مكتوبة بـ http:// جوه المقالات أو إعدادات القالب أو الإضافات، فضلت زي ما هي بعد تركيب الشهادة. أو عنوان الموقع في إعدادات ووردبريس لسه http، أو مفيش تحويل 301 من http لـ https.
الأدوات اللي هتحتاجها
خطوات الحل
اعرف الملفات اللي عاملة المشكلة
افتح الصفحة في Chrome واضغط F12 وادخل Console. هتلاقي سطور Mixed Content وفيها رابط كل ملف بيتحمّل بـ http. أو حط رابط الصفحة في Why No Padlock.
فين بالظبط: في المتصفح على أي صفحة من موقعك: F12 (أو كليك يمين واختار Inspect)، وبعدين تبويب Console.
ConsoleMixed Content: http://example.com/wp-content/uploads/logo.png صورة بـ http https://example.com/wp-content/uploads/logo.png نفس الصورة بعد التصليح شاشة توضيحية مبسطة من Chrome DevTools، والأرقام أمثلة. صلّح عنوان الموقع نفسه
في ووردبريس خلّي «عنوان ووردبريس» و«عنوان الموقع» الاتنين يبدأوا بـ https://. لو عدّلتهم والموقع وقع، رجّعهم من ملف wp-config.php.
فين بالظبط: لوحة التحكم، ثم الإعدادات، ثم عام. ولو مش قادر تدخل اللوحة: ملف wp-config.php في public_html من File Manager في cPanel.
php// في wp-config.php فوق سطر: That's all, stop editing define('WP_HOME', 'https://example.com'); define('WP_SITEURL', 'https://example.com');غيّر الروابط القديمة في قاعدة البيانات
الصور اللي في المقالات القديمة مكتوبة بـ http جوه قاعدة البيانات. استبدل http://example.com بـ https://example.com في كل الجداول مرة واحدة. خد نسخة احتياطية الأول.
فين بالظبط: لوحة التحكم، ثم الأدوات، ثم Better Search Replace. اختار كل الجداول، وشغّلها مرة Dry run الأول، وبعدين شيل العلامة وشغّلها بجد.
الأدواتBetter Search ReplaceSearch for http://example.com Replace with https://example.com Run as dry run جرّب الأول وشوف عدد التغييرات شاشة توضيحية مبسطة من Better Search Replace، والأرقام أمثلة. حوّل http لـ https بـ 301
لازم أي حد يفتح http يتحوّل تلقائي لـ https في خطوة واحدة. لو الاستضافة فيها خيار Force HTTPS فعّله، أو حط القاعدة دي.
فين بالظبط: ملف .htaccess في public_html، فوق سطر # BEGIN WordPress. لو موقعك على Cloudflare: SSL/TLS، ثم Edge Certificates، وفعّل Always Use HTTPS بدل الكود.
apacheRewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]حل مؤقت للملفات اللي مش لاقيها
لو فاضل ملفات من إضافة أو قالب ومش عارف مكانها، الهيدر ده بيخلي المتصفح يطلب أي http على إنه https. ده حل مساعد مش بديل عن تصليح الروابط.
فين بالظبط: هيدر بيترجع من السيرفر. في .htaccess: Header set Content-Security-Policy "upgrade-insecure-requests". وإضافة Really Simple SSL بتعمل نفس الحاجة من إعداداتها.
httpContent-Security-Policy: upgrade-insecure-requests
اتأكد إن كله اتصلح
افتح الصفحات المهمة تاني وشوف القفل ظاهر والـ Console نضيف. وفي Search Console اتأكد إن الموقع مسجّل بـ https أو كـ Domain property، والـ Sitemap روابطه كلها https.
لو موقعك WordPress
نفس الحل من لوحة تحكم ووردبريس: الإعدادات اللي تغيّرها، والإضافات اللي تختصر عليك.
- فعّل SSL بضغطة
المكان: الإعداداتSSL
بعد تفعيل الإضافة اضغط «Activate SSL». هي بتغيّر عنوان الموقع وتعمل تحويل 301 وتصلّح الروابط وهي بتتحمّل.
- استبدل الروابط القديمة
المكان: الأدواتBetter Search Replace
Search for: http://دومينك، Replace with: https://دومينك، اختار كل الجداول، وشغّل Dry run الأول.
- امسح الكاش
المكان: إضافة الكاشPurge All
بعد أي تغيير امسح كاش إضافة السرعة وكاش Cloudflare، عشان الصفحات القديمة متفضلش تتعرض بـ http.
متشغّلش الاستبدال على http:// لوحده من غير الدومين، عشان متبوظش روابط مواقع تانية مش بتدعم https.
اختبر فهمك
الصفحة https بس فيها صورة بتتحمّل من http. ده اسمه؟
أضمن طريقة تصلّح روابط http القديمة جوه المقالات؟
upgrade-insecure-requests بيعمل إيه؟
الإجابة دي فادتك؟
شكرًا! رأيك بيساعدنا نحسّن الإجابة.
أسئلة مرتبطة
الموقع بيفتح بأكتر من نسخة (http و https، بـ www ومن غير). ده بيأثر على السيو؟
أيوه، ده بيعمل محتوى مكرر وبيوزع الروابط. اختار نسخة واحدة (غالبًا https) وحوّل كل النسخ التانية لها بـ 301 في خطوة واحدة، وحدّث الـ canonical والـ Sitemap.
إزاي أنقل الموقع لدومين جديد من غير ما أخسر الترتيب؟
اعمل خريطة بكل رابط قديم والرابط الجديد المقابل له، وحوّل كل واحد بـ 301 مباشر (مش كله للصفحة الرئيسية)، وسيب التحويلات شغالة سنة على الأقل. بعدها استخدم أداة تغيير العنوان (Change of Address) في Search Console وابعت الـ Sitemap الجديد وراقب الزحف والفهرسة. تذبذب الترتيب لفترة مؤقتة شيء طبيعي.
إيه الفرق بين تحويل 301 و 302؟ وأستخدم أنهي واحد إمتى؟
301 معناه إن الصفحة اتنقلت على طول، فجوجل بيشيل الرابط القديم من النتائج ويحط الجديد مكانه. 302 معناه نقل مؤقت، فجوجل غالبًا بيسيب الرابط القديم في النتائج لأنه متوقع يرجع. لو النقل دائم استخدم 301 (أو 308)، ولو مؤقت فعلًا استخدم 302 (أو 307).
إزاي أسرّع موقع ووردبريس بطيء؟
قيس الأول بـ PageSpeed Insights عشان تعرف المشكلة فين، وبعدين بالترتيب: استضافة كويسة بإصدار PHP حديث، إضافة كاش (WP Rocket أو LiteSpeed Cache)، ضغط الصور، تقليل الإضافات التقيلة، و CDN زي Cloudflare. ما تركّبش كذا إضافة كاش مع بعض.