ترحيل منتدى phpBB3 إلى Discourse

هل تقصد في /admin/site_settings/category/all_results البحث عن permalink_redirects؟ هذا الإعداد غير موجود لدي.

لكن permalink_normalizations يعمل نوعًا ما، باستخدام /^forum\\/(view.*)/\\1:

  • جميع روابط phpBB تبدأ بـ view، مثل viewtopic.php و viewforum.php. في الواقع، يبدو أن هذين هما الرابطان الوحيدان اللذان تم ترحيلهما في حالتنا، لذا يمكن تحسين التعبير العادي، أو تقسيمه إلى اثنين لمطابقة المسار بالكامل.
  • لذا فإن هذا التعبير العادي (بصيغة sed) يأخذ جميع الروابط التي تبدأ بـ /forum/view، ويزيل جزء forum/.

الآن نحتاج فقط إلى إعادة توجيه جميع /phpbb/ (مسار المنتدى القديم الخاص بنا) إلى /forum/ على خادم الويب (أو Cloudflare في حالتنا) ويقوم Discourse بالباقي. كان يجب أن أجد هذا منذ حوالي 3 سنوات، بدلاً من كسر جميع الروابط الخلفية :smiling_face_with_tear:.

لكن أخبرني أين يفترض أن يكون permalink_redirects هذا، ربما يتطلب إضافة، أو كان جزءًا من إضافة استيراد phpBB أو شيء من هذا القبيل؟

تعديل: يعمل بشكل جيد:

root@micha:~# curl -IL https://dietpi.com/phpbb/viewtopic.php?p=46083
HTTP/2 301
location: /forum/viewtopic.php?p=46083

HTTP/2 301
location: https://dietpi.com/forum/t/is-there-a-simple-launch-page-for-dietpi/11237/1
x-discourse-route: permalinks/show

HTTP/2 200
x-discourse-route: topics/show

إعادة التوجيه الأولى /phpbb => /forum تحدث في Cloudflare عبر قاعدة إعادة توجيه، للحفاظ على الحمل التافه بعيدًا عن الأصل لدينا. إعادة التوجيه الثانية إلى الموضوع الفعلي تتم في Discourse عبر permalink، وإزالة forum/ البادئة عبر تسوية permalink، لمطابقة permalinks التي أضافتها إضافة استيراد phpBB، والتي لا تحتوي على مسار الدليل الفرعي للمنتدى القديم أو الجديد.