هل تقصد في /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 سنوات، بدلاً من كسر جميع الروابط الخلفية
.
لكن أخبرني أين يفترض أن يكون 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، والتي لا تحتوي على مسار الدليل الفرعي للمنتدى القديم أو الجديد.