يتطلب نقل موقع Joomla إلى HTTPS ثلاث خطوات: تثبيت شهادة SSL على خادمك، وتفعيل خيار Force HTTPS في Global Configuration الخاص بـ Joomla، وإضافة إعادة توجيه 301 لكي تتبع روابط HTTP القديمة المسار الصحيح. الخطوة الثالثة تنطوي على تفصيل خاص بـ Joomla يعثر أغلب الأشخاص، وسنشرحه أدناه قبل الوصول إلى الكود.
الإجابة السريعة: ثبّت الشهادة عبر لوحة تحكم الاستضافة، ثم انتقل إلى System > Global Configuration > Server وضبط Force HTTPS على Entire Site. لإضافة إعادة توجيه على مستوى الخادم، أعد أولًا تسمية htaccess.txt الموجود في جذر Joomla إلى .htaccess، لأن Apache يتجاهل الملف تحت اسمه الأصلي.
SSL (وهو اختصار لـ Secure Sockets Layer، مع أن كل شهادة تُصدر اليوم تستخدم في الواقع TLS) هو ما يزيل تصنيف “غير آمن” من شريط العنوان. إذا كنت تريد الخلفية أولًا، اقرأ ما هي شهادة SSL. هذه الخطوات تنطبق على Joomla 5 وJoomla 6.
أي طريقة تناسب إعداد Joomla الخاص بك
| إعدادك | كيفية الحصول على الشهادة | المدة تقريبًا |
|---|---|---|
| استضافة مُدارة أو cPanel مع AutoSSL | أصدر الشهادة المجانية من اللوحة، ثم فعّل Force HTTPS | 10 دقائق |
| استضافة بلا أداة SSL، أو VPS خاص بك | استخدم Certbot للحصول على شهادة Let’s Encrypt، ثم فعّل Force HTTPS | 20 دقيقة |
| شهادة مدفوعة (OV أو EV أو wildcard) | أنشئ CSR، ثبّتها يدويًا، ثم فعّل Force HTTPS | 30 دقيقة زائد وقت التحقق |
| Cloudflare أمام موقعك | شهادة على الخادم الأصلي، وضبط Cloudflare على Full (strict)، وتفعيل Behind Load Balancer | 15 دقيقة |
أخذ نسخة احتياطية قبل أن تبدأ. Akeeba Backup هو الخيار المعتاد في Joomla. أسوأ ما يمكن أن يحدث في هذا الإجراء هو فقدان الوصول إلى لوحة الإدارة الخاصة بك، والنسخة الاحتياطية بالإضافة إلى خطوة الاستعادة الواردة في قسم configuration.php أدناه ستخرجك من هذا المأزق.
أي شهادة SSL يجب أن يستخدمها موقع Joomla؟
ابدأ بالخيار المجاني. معظم مزودي الاستضافة يصدرون شهادات Let’s Encrypt مجانية تلقائيًا، والتشفير الذي تقدمه الشهادة المجانية مماثل تمامًا لشهادة مدفوعة. الفرق بين شهادة SSL وأخرى لـ Joomla يكمن في ما قامت جهة إصدار الشهادة بالتحقق منه قبل إصدارها، وما تحصل عليه حين تحدث مشكلة.
| النوع | ما تتحقق منه جهة الإصدار | مدة الإصدار | يناسب |
|---|---|---|---|
| التحقق من النطاق (DV) | أنك تتحكم بالنطاق | دقائق | المدونات، مواقع العرض، معظم تنصيبات Joomla |
| التحقق من المؤسسة (OV) | النطاق بالإضافة إلى مؤسستك المسجلة | 1 إلى 3 أيام عمل | مواقع الأعمال، مناطق الأعضاء، بوابات العملاء |
| التحقق الموسع (EV) | فحص قانوني وتشغيلي كامل للشركة | 1 إلى 3 أيام عمل | المتاجر، الخدمات المالية، وأي مكان تكون الهوية فيه مهمة |
إذا كان تنصيب Joomla الخاص بك يخدم نطاقات فرعية، فإن شهادة wildcard تغطيها جميعًا بشهادة واحدة. لست متأكدًا من النوع المناسب؟ SSL Wizard يحدد ذلك من خلال بضعة أسئلة.
تتوقف الشهادة المجانية عن كونها الخيار المناسب في أربع حالات: عندما تستقبل مدفوعات وترغب بضمان مالي خلف الشهادة، أو عندما تحتاج إلى تضمين تفاصيل مؤسستك المُحقّقة بداخلها بدلًا من مجرد التحكم بالنطاق، أو عندما تستخدم نطاقات فرعية ويكون إصدار wildcard المجاني معقدًا في استضافتك، أو عندما لا يقوم مزود الاستضافة بأتمتة التجديد. هذا الأمر الأخير أهم من ما يتصوره الناس، والقسم التالي يوضح السبب.
تثبيت الشهادة على خادمك
لا يقوم Joomla بتثبيت الشهادات. هذه الخطوة تحدث على مستوى الخادم، قبل أن تلمس Joomla أصلًا.
من لوحة تحكم الاستضافة
ابحث عن SSL/TLS أو Let’s Encrypt أو AutoSSL في لوحة التحكم. في cPanel يقع هذا تحت Security. أصدر الشهادة لكل من النطاق الأساسي ونسخة www، لأن أي منهما تفوته سيؤدي إلى تحذير عدم تطابق الاسم.
شهادات Let’s Encrypt تدوم 90 يومًا ويُفترض أن تتجدد تلقائيًا قبل انتهاء صلاحيتها بحوالي 30 يومًا. عندما تتعطل هذه الأتمتة، وهذا يحدث غالبًا بعد نقل نطاق أو تغيير في DNS، يستمر الموقع في العمل لأسابيع ثم يصبح غير آمن دون أي تحذير. تأكد من أن التجديد التلقائي مُفعّل، وبعد أول تاريخ تجديد متوقع، تحقق من الشهادة باستخدام SSL Checker. إذا تقدم تاريخ الانتهاء إلى الأمام، فإن التجديد يعمل بشكل صحيح.
على VPS بدون لوحة تحكم
استخدم Certbot، عميل Let’s Encrypt. يقوم بإصدار الشهادة من سطر الأوامر، ويضبط Apache أو Nginx، ويثبّت مؤقّت تجديد خاص به.
تثبيت شهادة مدفوعة يدويًا
- أنشئ CSR. لا تحتوي Joomla على وظيفة CSR خاصة بها، لذا استخدم مولّد CSR، أو أدلة إنشاء CSR الخاصة بخادمك.
- قدّمه إلى جهة إصدار الشهادات وأكمل عملية التحقق.
- ثبّت الشهادة، والمفتاح الخاص، والشهادات الوسيطة. في cPanel هذا موجود تحت SSL/TLS > Manage SSL sites، وهو موضح في دليل التثبيت على cPanel. المنصات الأخرى موجودة في أدلة تثبيت SSL.
- تحقق قبل الاستمرار. شغّل SSL Checker، وراجع كيفية التحقق من تثبيت الشهادة بشكل صحيح إذا لاحظت أي خلل.
لا تتجاهل الشهادات الوسيطة. إذا ثبّت الشهادة الرئيسية بدون السلسلة، فإن معظم متصفحات سطح المكتب ستظل تُظهر القفل، لأنها تخزّن مؤقتًا شهادات وسيطة رأتها في مكان آخر. لكن متصفحات الهاتف المحمول، وبوابات الدفع، وعملاء API ستفشل. إذا كنت تواجه مشكلة في السلسلة، راجع الشهادات الوسيطة المنتهية.
كيفية إجبار استخدام HTTPS في Joomla
بعد أن تصبح الشهادة تعمل على الخادم، أخبر Joomla باستخدامها. سجّل الدخول إلى لوحة الإدارة وانتقل إلى System > Global Configuration > Server. في قسم Server الموجود في أعلى تلك التبويبة ستجد Force HTTPS، وهو يحتوي على ثلاث حالات بدلًا من مجرد تشغيل وإيقاف بسيطين.
- None. لا يفعل Joomla شيئًا. تبقى الصفحات متاحة عبر HTTP وHTTPS على حد سواء.
- Administrator Only. يتم إجبار لوحة الإدارة، بما فيها شاشة تسجيل الدخول، على استخدام HTTPS، ويُترك الموقع العام كما هو. هذه هي الحالة التي تستخدمها بينما لا تزال الشهادة في مرحلة التحقق، أو في موقع تنقله على مراحل. كلمة مرورك الخاصة تتوقف عن الانتقال بشكل غير مشفر على الفور، دون التأثير على أي شيء يراه الزوار.
- Entire Site. يتم إجبار كل شيء على استخدام HTTPS. هذا ما تريده بعد التأكد من أن الشهادة تعمل بشكل صحيح.
اختر Entire Site ثم احفظ. تحقق من أن الشهادة تعمل على نطاقك قبل أن تقوم بذلك. إذا تم تفعيل Force HTTPS بينما الشهادة معطلة أو غير موجودة، فإن لوحة الإدارة تصبح غير قابلة للوصول أيضًا، وستحتاج إلى خطوة الاستعادة أدناه.
هذه التعليمات تخص Joomla 5 وJoomla 6، وهما الفرعان المدعومان حاليًا. صدر Joomla 6.0 في أكتوبر 2025، وسيتوقف Joomla 5 عن استلام تحديثات وظيفية في 13 أكتوبر 2026، وبعد ذلك سيتلقى تصحيحات أمنية فقط حتى أكتوبر 2027. إذا كنت لا تزال تستخدم Joomla 3، فقد بلغ نهاية عمره في أغسطس 2023 والإعداد موجود في مكان مختلف، فحدّث أولًا قبل تطبيق أي شيء هنا.
ضبط Force HTTPS من configuration.php
يتم تخزين كل إعداد في Global Configuration داخل ملف configuration.php في جذر Joomla. تحرير هذا الملف عبر FTP هو طريقتك للعودة إلى الموقع عندما يكون Force HTTPS قد قفل عليك الوصول إلى لوحة الإدارة، وهذا تمامًا هو الوضع الذي تصبح فيه القائمة المنسدلة غير متاحة.
السطر المعني هو:
public $force_ssl = 2;
تتطابق القيم مع الحالات الثلاث: 0 يعني None، و1 يعني Administrator، و2 يعني كل من الموقع ولوحة الإدارة. إعادة ضبطها إلى 0 عبر FTP تلغي حالة القفل في ثوانٍ.
ستجد سطرًا ثانيًا قريبًا:
public $live_site = '';
الكثير من دروس HTTPS في Joomla تخبرك بتعبئة هذا الحقل بعنوان https الخاص بك، والعديد منها يكتبها كـvar $live_site. هذه الصياغة تعود إلى Joomla 1.5، الذي استخدم صياغة PHP 4 للأصناف وتم التخلي عنه في عام 2012. إصدار Joomla الحالي يستخدم public، والإعداد موثق كإعداد اختياري. اتركه فارغًا إلا إذا كان لديك سبب محدد لتثبيت رابط الموقع. هذا الإعداد ليس ما يُفعّل HTTPS، وضبطه بشكل غير صحيح هو سبب شائع لتعطيل موقع Joomla. $force_ssl هو الإعداد الذي يقوم بالعمل الفعلي.
إضافة إعادة توجيه 301 في .htaccess
يعالج Force HTTPS الطلبات التي تصل إلى Joomla. إعادة التوجيه على مستوى الخادم أسرع، لأنها تحدث قبل تشغيل PHP، وتستمر بالعمل حتى إذا كان Joomla غير متاح. في Apache هذا يعني .htaccess، وهنا الجزء الذي يتخطاه تقريبًا كل دليل.
أولًا، أعد تسمية htaccess.txt
يوزّع Joomla الملف باسم htaccess.txt، لا .htaccess. يتجاهل Apache الملف تحت هذا الاسم. إذا لصقت قواعد إعادة التوجيه في ملف اسمه htaccess.txt، أو في ملف .htaccess غير موجود بعد، فلن يحدث شيء ولن تحصل على أي خطأ يخبرك بالسبب.
- أعد تسمية htaccess.txt إلى .htaccess في جذر Joomla. لا تحرر htaccess.txt وتتركه هناك: تحديث Joomla يستبدل هذا الملف وتضيع تعديلاتك معه.
- قم بإعادة التسمية قبل تفعيل Use URL Rewriting في Global Configuration. إذا فعّلت إعادة الكتابة أولًا، فإن Joomla يبدأ في إنشاء عناوين URL بدون index.php لا يعرف Apache كيف يوجهها، وبالتالي كل صفحة عدا الصفحة الرئيسية تُعيد 404.
ثم أضف إعادة التوجيه
أضف هذه السطور قرب أعلى ملف .htaccess، فوق كتلة إعادة الكتابة الخاصة بـ Joomla:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
هناك تفصيلان يحددان إذا كان هذا سيعمل. يجب أن يكون الشرط off، وهو يعني “أعد التوجيه عندما لا يكون الطلب مؤمّنًا بالفعل”. إذا كُتب على أنه on، وهذا موجود في عدد مفاجئ من المقاطع المنشورة، فإن القاعدة لن تُفعَّل إلا للطلبات المؤمّنة بالفعل وتُعيد توجيهها إلى HTTPS مجددًا، وهذا يشكّل حلقة لا تنتهي. وعلامة R=301 هي ما يجعله إعادة توجيه دائمة. بدونها، أو مع علامة R فقط، تحصل على إعادة توجيه مؤقتة 302 أو إعادة كتابة داخلية لا تخبر محركات البحث بأي شيء انتقل.
على Nginx
لا يحتوي Nginx على .htaccess ولا يقرأ قواعد إعادة كتابة Apache. حرّر كتلة الخادم عوضًا عن ذلك:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
اختبر باستخدام nginx -t، ثم أعد التحميل باستخدام systemctl reload nginx.
إصلاح ما يتركه التبديل خلفه
مسح ذاكرة التخزين المؤقت لـ Joomla. هذا هو أول شيء يجب فعله وهو الأكثر شيوعًا من حيث النسيان. سيستمر Joomla بسعادة في تقديم صفحات مخزنة مؤقتًا مليئة بترميز HTTP، وهذا يجعل عملية نقل مكتملة تبدو معطلة. انتقل إلى System > Clear Cache، في لوحة Maintenance، وقم بمسح CDN الخاص بك أيضًا إذا كنت تستخدم واحدًا.
إصلاح المحتوى المختلط. صفحة تُقدَّم عبر HTTPS ولا تزال تحمّل صورة، أو نص برمجي، أو ورقة أنماط عبر HTTP هي محتوى مختلط. تعامل المتصفحات مع الفئتين بشكل مختلف: الوسائط قابلة عادة للترقية، لذا يطلبها المتصفح بهدوء عبر HTTPS بدلًا من ذلك، بينما تعتبر النصوص البرمجية وأوراق الأنماط قابلة للحظر ويتم رفضها ببساطة، وهذا هو السبب في أن صفحة متأثرة قد تظهر تمامًا بدون تنسيق. في Joomla المصادر المعتادة هي عناوين URL مُثبَّتة في تجاوزات القوالب، وإعدادات الوحدات، والامتدادات الخارجية. تُظهر وحدة تحكم المتصفح المصدر المخالف. دليلنا حول كيفية إصلاح المحتوى المختلط يشرح التشخيص بالكامل.
حدّث خريطة موقعك وملف robots.txt. أعد إنشاء خريطة الموقع XML لتضم عناوين URL بصيغة https، وتحقق من أن robots.txt لا يشير إلى نسخة http من أي شيء.
استكشاف مشاكل SSL في Joomla وإصلاحها
إعادة توجيه كثيرة جدًا بعد تفعيل Force HTTPS
هذا هو أكثر عطل شائع لـ HTTPS في Joomla، ويحدث لأن نصيحتين معياريتين متضاربتان. إذا كانت وسيلة وسيطة مثل Cloudflare تنهي TLS ثم تتصل بخادمك عبر HTTP عادي، فإن Joomla لا يرى قط طلب HTTPS. Force HTTPS يستنتج أن الزائر وصل بشكل غير آمن ويُعيد توجيهه إلى HTTPS، ويرد الوسيط على ذلك الطلب عبر HTTP مجددًا، وتستمر الحلقة حتى يتخلى المتصفح ويظهر خطأ ERR_TOO_MANY_REDIRECTS.
هناك حلان وأنت عمومًا تحتاج كليهما:
- ضبط وضع تشفير SSL/TLS في Cloudflare على Full (strict) والحفاظ على شهادة صالحة على الخادم الأصلي. الوضع Flexible، الذي لا تزال العديد من دروس Joomla الشائعة توصي به كخيار مجاني سريع، هو ما ينشئ الحلقة.
- ضبط Behind Load Balancer على Yes. يقع هذا في نفس تبويبة System > Global Configuration > Server، أبعد إلى الأسفل في كتلة Proxy. هذا يخبر Joomla أن يثق بترويسة البروتوكول المُمَررة من الوسيط بدلًا من البحث عن اتصال HTTPS مباشر.
تحذير واحد بشأن هذا الإعداد الثاني: فعّل Behind Load Balancer فقط إذا كان موقعك فعلًا خلف وسيط، أو موازن تحميل، أو CDN. على استضافة عادية، الوثوق بترويسة مُمَررة يمكن لأي شخص إرسالها يضعف الأمان دون أي فائدة.
مشاكل شائعة أخرى
| العرض | السبب | الحل |
|---|---|---|
| مقفل خارج لوحة الإدارة | تم تفعيل Force HTTPS بينما الشهادة مفقودة أو معطلة | اضبط $force_ssl على 0 في configuration.php عبر FTP، أصلح الشهادة، ثم أعد التفعيل |
| قواعد إعادة التوجيه لا تفعل شيئًا | كُتبت في htaccess.txt، أو في ملف .htaccess غير موجود | أعد تسمية htaccess.txt إلى .htaccess |
| كل صفحة عدا الصفحة الرئيسية تُعيد 404 | تم تفعيل URL Rewriting قبل إعادة التسمية | أعد تسمية الملف، أو أوقف إعادة الكتابة حتى تفعل ذلك |
| القفل غائب على بعض الصفحات فقط | محتوى مختلط في تلك الصفحات | ابحث عن مصدر HTTP في وحدة تحكم المتصفح |
| كان الموقع سليمًا، أصبح غير آمن بعد أسابيع | انتهت صلاحية شهادة Let’s Encrypt بسبب تعطل التجديد | أعد الإصدار، ثم تأكد من التجديد التلقائي في لوحتك |
| يعمل في المتصفح، يفشل مع تطبيق أو بوابة | سلسلة شهادة غير مكتملة | ثبّت حزمة CA الكاملة، أعد الفحص باستخدام SSL Checker |
| عدم تطابق الاسم على www أو النطاق الأساسي | الشهادة تغطي واحدًا من الاسمين فقط | أعد الإصدار لتغطية كليهما. راجع اسم مشترك غير صالح |
إذا كانت الشهادة مثبتة ولا يزال الموقع يظهر كغير آمن، فإن أدلة أخطاء SSL تتعامل مع رموز أخطاء المتصفحات المحددة.
بعد التبديل: قائمة تحقق SEO
- أضف خاصية HTTPS في Google Search Console. خاصية HTTP لا تُقدم تقارير عن عناوين URL بصيغة HTTPS. أضف الخاصية الجديدة، أو استخدم خاصية النطاق، التي تغطي كليهما.
- أعد إرسال خريطة الموقع بعناوين URL بصيغة https.
- تحقق من أن الوسوم الأساسية (canonical) تشير إلى https في امتداد SEF أو SEO الخاص بك.
- حدّث التحليلات وأي خدمة خارجية تخزّن عنوان URL لموقعك.
توقع بعض التقلبات. تعامل Google التبديل من HTTP إلى HTTPS كنقل موقع مع تغييرات في عناوين URL، لذا ستظهر مرات الظهور مقسّمة بين خاصيتي HTTP وHTTPS لفترة، وغالبًا ما تتقلب الترتيبات لبضعة أسابيع قبل أن تستقر. طالما أن كل صفحة تُحل بشكل صحيح وإعادة توجيه 301 مطبقة، فليس هناك شيء يحتاج إصلاحًا.
بعد استقرار HTTPS لفترة، فكّر بتفعيل HSTS، الذي يخبر المتصفحات برفض HTTP العادي لنطاقك بشكل قاطع. اترك توجيه preload معطلًا في البداية، لأنه يصعب التراجع عنه وسيجعل أي نطاق فرعي لا يزال على HTTP غير قابل للوصول.
الأسئلة الشائعة
ثبّت شهادة SSL على خادمك أولًا، عبر لوحة تحكم الاستضافة أو يدويًا. ثم سجّل الدخول إلى لوحة إدارة Joomla، وافتح System > Global Configuration > Server، واضبط Force HTTPS على Entire Site. لا يقوم Joomla نفسه بتثبيت الشهادات. إنه فقط يُفعّل استخدام تلك الموجودة على خادمك بالفعل.
في تبويبة System > Global Configuration > Server، ضمن كتلة Server في أعلاها. يقدم ثلاث حالات: None، وAdministrator Only، وEntire Site. حالة Administrator Only مفيدة بينما لا تزال الشهادة قيد التحقق، لأنها تؤمّن تسجيل دخولك دون تغيير ما يراه الزوار.
تقريبًا في كل مرة يكون السبب أن وسيطًا مثل Cloudflare يُنهي TLS ويُمرر HTTP عادي إلى خادمك، لذا يعتقد Joomla أن كل طلب وصل بشكل غير آمن ويُعيد توجيهه مجددًا. اضبط وضع تشفير Cloudflare على Full (strict) بدلًا من Flexible، وفعّل Behind Load Balancer على Yes، في كتلة Proxy ضمن Global Configuration. فعّل هذا الإعداد فقط إذا كنت فعلًا خلف وسيط.
لا. القائمة المنسدلة في Global Configuration تكتب القيمة نفسها التي يحتفظ بها الملف. تحرير configuration.php مهم في حالة واحدة: عندما يكون Force HTTPS قد أقفل عليك الوصول إلى لوحة الإدارة، يمكنك ضبط $force_ssl عائدًا إلى 0 عبر FTP. تجاهل الدروس الأقدم التي تخبرك بتعبئة var $live_site. تم التخلي عن تلك الصياغة مع Joomla 1.5 في عام 2012، والإعداد اختياري في كل الحالات.
تحقق من اسم الملف أولًا. يوزّع Joomla الملف باسم htaccess.txt ويتجاهله Apache تحت هذا الاسم، لذا القواعد المُلصقة فيه لا تعمل مطلقًا. أعد تسميته إلى .htaccess. إذا كان الملف صحيحًا، تحقق من الشرط: يجب أن يكون RewriteCond %{HTTPS} off. إذا كُتب على أنه “on” فإنه يطابق فقط الطلبات المؤمّنة بالفعل، ما يُنتج حلقة إعادة توجيه بدلًا من إعادة توجيه.
Joomla 5 وJoomla 6، الفرعان المدعومان حاليًا. صدر Joomla 6.0 في أكتوبر 2025. يستلم Joomla 5 تحديثات وظيفية حتى 13 أكتوبر 2026 وتصحيحات أمنية حتى أكتوبر 2027. بلغ Joomla 3 نهاية عمره في أغسطس 2023 وينظم إعداداته بشكل مختلف، فحدّث قبل تطبيق هذه الخطوات.
هل تنقل منصة مختلفة، أو تريد الإجراء العام؟ راجع دليلنا حول كيفية تبديل موقع من HTTP إلى HTTPS.
وفِّر 10% على شهادات SSL عند الطلب اليوم!
إصدار سريع، وتشفير قوي، وثقة في المتصفح بنسبة 99.99%، ودعم مخصص، وضمان استرداد المال خلال 25 يومًا. رمز القسيمة: SAVE10

