عرض إعدادات مختلفة وفقًا لنطاقات مختلفة

أهلاً بك،

لدي العديد من المنتجات عبر الإنترنت، وأود أن يكون لكل منها مجتمعها الخاص عبر الإنترنت. ومع ذلك، نظرًا لأن هذه المنتجات قابلة للتشغيل المتبادل، يستخدم العديد من عملائي منتجات متعددة في وقت واحد.

مع أخذ ذلك في الاعتبار، أرغب في استخدام مثيل Discourse واحد لجميع منتجاتي ولكن عرض سمة مختلفة للمجتمع بناءً على النطاق المستخدم للوصول إليه.

على سبيل المثال:

  • app1 → يعرض شعار وألوان App1
  • app2 → يعرض شعار وألوان App2

بالإضافة إلى ذلك، نظرًا لأنه يلزم وضع علامات على جميع المواضيع بناءً على اسم المنتج، أود إخفاء المواضيع التي تحمل علامات من منتجات أخرى. على سبيل المثال، إخفاء #app1 إذا كنت تصل إلى app2.com.

يجب أن يحدث هذا ما لم يختار المستخدم تصفح مجتمعات متعددة في وقت واحد.

يمكنني استخدام أي مساعدة؛ ومع ذلك، أتفهم أن شيئًا كهذا قد لا يكون متاحًا بشكل مباشر. بصفتي مطورًا، يمكنني إنشاء مكون إضافي وكتابة كود JavaScript إضافي لجعل هذا يحدث.

أفترض أن العقبة الأولى هي السماح لنفس مثيل Discourse بالعمل على نطاقات متعددة. كيف أبدأ في هذا؟

إن وجود نفس المعلومات على مواقع متعددة يعد أمرًا سيئًا لمحركات البحث (SEO) ولا يُنصح به. لدي (أعتقد أنه معطل، لكن سأصلحه قريبًا جدًا) مكون سمة سيغير الصفحة الرئيسية اعتمادًا على المجموعة التي ينتمي إليها شخص ما، بحيث يمكنك تعيين مجموعته وفقًا لحقل مخصص تحصل عليه عند إنشاء حسابه لتعيين صفحته بالكامل إلى الفئة الخاصة بمنتجه المفضل.

إذا كنت لا تهتم بأن تتم فهرسة موقعك، فيمكنك إلقاء نظرة على قالب web_only الذي يقوم بإعادة التوجيه وإضافة إلى ملف yml الخاص بك لإلغاء ذلك. أعتقد أن إعداد تكوين مواقع متعددة باستخدام Let’s Encrypt وبدون وكيل عكسي يقدم مثالًا.