مرحبًا، أود التأكد من أن النطاق الفرعي www يعيد توجيه المستخدمين إلى تثبيت Discourse الفعلي. أشعر أن هذا ضروري لضمان عدم فقدان الزوار، فمعظم الناس لا يستبعدون ‘www’ عند زيارة المواقع الإلكترونية.
يجب عليك إضافة سجل A في إعدادات DNS الخاصة بك لدى مسجل النطاق، بحيث يشير www إلى عنوان IP للخادم. وهو نفس العنوان الذي تشير إليه حاليًا سجل A الخاص بـ domain.com.
هل سيؤدي ذلك إلى مشاكل عند زيارة المستخدم للنسخة التي تحتوي على www؟ تم ضبط Discourse لعدم تضمين www.
لا، لأن المستخدم سيتم إعادة توجيهه. لن يتم تقديم نفس الموقع تحت نطاقات متعددة.
تريد هذه الأدلة. لقد استخدمتها لنفس الغرض تمامًا:
هل تقصد أن إضافة سجل A لـ ‘www’ لا يكفي؟ لقد قرأت تلك المقالات.
سيظهر موقعي رسالة مزعجة على المتصفح دون تسجيل شهادة لكل من “النطاقات الفرعية”.
لقد قمت للتو بإعداد Discourse على خادم Digital Ocean. هل يتطلب الخطوة 2، وهي تعديل ملف discourse.conf، تثبيت nginx؟ لست متأكداً، لكنني لا أعتقد أن الخادم يحتوي على nginx مثبت، وأنا في حيرة من أمري بشأن كيفية تثبيته.
أعتقد أن هذا الدليل يوضح هذا الجزء:
https://meta.discourse.org/t/running-other-websites-on-the-same-machine-as-discourse/17247/294
نعم، إضافة سجل A لـ www موجّه إلى نفس عنوان IP ستكون كافية لإعادة توجيه حركة المرور.
لا تحتاج إلى تنفيذ أي من الخطوات المذكورة في تلك الأدلة الأخرى؛ فسجل A الموجه إلى عنوان IP يكفي لإعادة توجيه بسيطة.
حاول ألا تُعقّد التثبيت إلا إذا كان ذلك ضرورياً تماماً.
هل سيكون هذا كافيًا لتجنب خطأ المتصفح NET::ERR_CERT_COMMON_NAME_INVALID؟ إذا قمت بتثبيت discourse على نطاق فرعي www، فإن الوصول إلى الموقع عبر https://example.com يعطيني هذا الخطأ. إنه يعمل فقط إذا استخدمت https://www.example.com.
لهذا السبب تحتاج إلى استخدام إعادة توجيه، حيث لا يمكن تشغيل discourse من عناوين URL متعددة.
اختر واحداً، وأعد توجيه الآخر.
لدي مشكلة مماثلة، واستخدام سجل إعادة توجيه URL على مستوى DNS لا يحل المشكلة بالنسبة لي.
قمت بتثبيت Discourse باستخدام اسم المضيف ‘www.example.com’ وسجلات DNS التالية:
سجل A المضيف:WWW القيمة:my_server_ip
سجل CNAME المضيف:@ القيمة: www.example.com
سجل إعادة توجيه URL المضيف:@ القيمة:https://www.example.com
إذا قمت بعد ذلك باستخدام SSL Server Test (Powered by Qualys SSL Labs) للتحقق من عنوان URL https://example.com بدون WWW، فسأحصل على عدم تطابق في اسم الشهادة، وفي متصفحي على خطأ NET::ERR_CERT_COMMON_NAME_INVALID.
أعتذر مرة أخرى إذا كنت أغفل شيئًا واضحًا هنا، فشبكات الكمبيوتر ليست نقاط قوتي!
ولهذا السبب نشرت تلك الروابط. كنت أود أن يكون الأمر بسيطًا مثل تغيير DNS، لكنه لم يبدو بسيطًا بالنسبة لي أيضًا. للعمل عبر HTTPS، كان عليّ التأكد من تسجيل شهادة لكل من العناوين. لتحقيق ذلك، اتبع أحد الدلائل التي نشرتها أعلاه. أما الدليل الآخر فيتيح لك تنفيذ إعادة توجيه.
من غير المرجح جدًا أن يحدد المستخدمون البروتوكول عند كتابة عنوان URL. إذا كنت قلقًا حقًا بشأن ذلك، فيمكنك ببساطة استخدام Cloudflare لـ DNS وقاعدة صفحة بسيطة.
نعم، لقد ‘نقلت’ نطاقِي (في الواقع، اخترت فقط إزالة www)، وهو ما اضطرني إلى خدمة الروابط الموجودة مسبقًا على مواقع لا أتحكم فيها والتي تشير إلى نطاقِي القديم مع استخدام HTTPS. قد يفسّر ذلك سبب عدم وجود خيار آخر لي سوى القيام بالعملية الكاملة في حالتي.
إذن، ما أظن أنك تقوله هو: إذا كنت راضيًا عن أن يكتب شخص ما www.example.com ويتم إعادة توجيهه إلى https://example.com، فإن ذلك يتطلب فقط تغييرًا في DNS؟
ومع ذلك، إذا كنت تريد لأي سبب من الأسباب أن يعمل https://www.example.com (في حالتي كنت أريد ذلك لأن مثل هذه الروابط كانت موجودة بالفعل ‘في الخارج’)، فيجب عليك اتباع الأدلة المقدمة.
أو استخدم قاعدة صفحة كما هو موضح أعلاه. ستقوم بتغطية النطاق باستخدام شهادة واسم نطاق (wildcard) وإعادة توجيه حركة المرور بسلاسة.
كل ذلك دون أي تعقيد إضافي على خادم Discourse.
ما هي قاعدة الصفحة؟
أعتزم اتباع الرابط How To Install Discourse Behind Nginx on Ubuntu 14.04 | DigitalOcean لتثبيت Nginx على خادم Digital Ocean الخاص بي، ثم تطبيق القواعد المذكورة في “الخطوة 2” لإعادة التوجيه إلى النطاق الصحيح. أعتقد أن هذا سيعمل! سأجرب ذلك غدًا وأرى ما إذا كان يسمح لي بإعادة توجيه جميع تركيبات https://www. و http://www و http://domain.com و https://domain.com إلى اسم مضيف Discourse الخاص بي، وهو الذي يشهد عليه شهادة Lets Encrypt، وهو https://www.domain.com.
سنرى!
@Erik_Manger، لم تنجح معي الحلول القائمة على DNS مع SSL. لقد استخدمت الرابط الأول الذي قدمه @merefield وهو يعمل بشكل جيد.
هل كنت بحاجة إلى تثبيت Nginx أمام Discourse لجعل هذا يعمل؟ في قطرة Digital Ocean الخاصة بي، المسار “/etc/nginx/” المستخدم في الخطافات الإضافية غير موجود.