أنا أقوم بالهجرة من Vanilla إلى Discourse، وقد قررنا البدء من الصفر بدلاً من استيراد 8 سنوات من المواضيع. الموقع الحالي هو forums.29th.org، لذا أفترض أنه بمجرد تشغيل Discourse بالكامل، سأجعل discourse هو forums.29th.org وأنقل Vanilla إلى نطاق آخر، مثل vanilla.29th.org (في الحقيقة أعاني من التفكير في بنية عنوان URL جيدة لأن لدينا عدة منتديات قديمة في هذه المرحلة!)
لذا، أود إعادة توجيه الطلبات التي تطابق نمط عنوان URL الخاص بـ Vanilla إلى النطاق الآخر. سيكون هذا سهلاً جداً بقاعدة nginx، لكن (أ) أردت التحقق مما إذا كان من الممكن استخدام ميزة مدمجة في Discourse، مثل الروابط الدائمة (Permalinks)، و (ب) إذا لم يكن ذلك ممكناً، أردت السؤال عن كيفية تعديل إعدادات nginx بالطريقة الصحيحة (سيكون رائعاً إذا تمكنت من التحكم في إصدارها أيضاً).
للتوضيح، تبدو عناوين مواضيع Vanilla على النحو التالي:
@pfaffman شكرًا لك - لكن كيف يمكنني معرفة مكان تعديل قاعدة nginx؟ هل أحتاج إلى تشغيل launcher enter app وتعديل الملف في /etc/nginx/nginx.conf أم شيء مشابه؟ وبافتراض أن الحاويات مؤقتة، كنت أتوقع أن يكون التعديل على شيء مُتحكَّم في إصداراته - هل هذا ممكن؟
يمكنك إضافة عناصر إلى ملف app.yml لتعديل إعدادات nginx (أو تشغيل إعدادات خارجية). لست متأكدًا من أفضل طريقة لإرسالها إليك. إليك مثال على إجراء بعض التغييرات في إعدادات nginx لغرض آخر:
after_ssl:
# لا تحوّل جميع المضيفات تلقائيًا إلى اسم النطاق الرئيسي
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: /if \(\$http_host[^\}]*\}/m
to: ""
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: /return 301.*$/
to: "return 301 https://$host$request_uri;"
لأي شخص آخر يصل إلى هنا، قمت بتنفيذ ذلك عن طريق الاتصال عبر SSH إلى الخادم الخاص بي، والتنقل إلى /var/discourse، وفتح containers/app.yml باستخدام vim والتمرير لأسفل إلى قسم hooks. ثم أضفت هذا الجزء:
hooks: # هذا السطر يجب أن يكون موجودًا بالفعل
after_ssl:
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "location @discourse {"
to: |
location /discussion/ {
return 301 https://vanilla.29th.org$request_uri;
}
location @discourse {
after_code: # هذا السطر يجب أن يكون موجودًا بالفعل