انظر SiteSettings.permalink_redirects
تعديل: عفوًا. تطبيع الروابط الدائمة
انظر SiteSettings.permalink_redirects
تعديل: عفوًا. تطبيع الروابط الدائمة
هل تقصد في /admin/site_settings/category/all_results البحث عن permalink_redirects؟ هذا الإعداد غير موجود لدي.
لكن permalink_normalizations يعمل نوعًا ما، باستخدام /^forum\\/(view.*)/\\1:
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، والتي لا تحتوي على مسار الدليل الفرعي للمنتدى القديم أو الجديد.
آسف. هذا ما قصدته.
لا. فقط قم بعمل تطبيع لهذا المسار.
هذا لا يعمل، بما أن Discourse يعيش في /forum ولا يرى أي طلبات إلى /phpbb. مع Discourse في مسار فرعي، والذي لا يتطابق مع مسار برنامج المنتدى السابق للاستيراد، لا توجد طريقة لتجنب إعادة التوجيه (أو إعادة الكتابة قبل الوكيل) إلى مسار Discourse، لكي يصبح تطبيعه فعالاً.
صحيح. لقد فاتني ذلك. تحتاج إلى إعادة توجيه /phpbb إلى /forum، وربما لا تزال بحاجة إلى التعامل مع التطبيع.
حسنًا، لكن هذا لم يكن صعبًا في الواقع: /^forum\\/(view.*)/\\1 يعمل بشكل جيد تمامًا للروابط الدائمة القديمة الخاصة بنا في phpBB. لست متأكدًا مما إذا كانت هناك روابط دائمة أخرى تم إنشاؤها بواسطة المكون الإضافي للاستيراد بخلاف viewforum.php و viewtopic.php، مثل روابط ملفات تعريف المستخدمين أو ما شابه ذلك؟
سيكون من الجيد بالفعل وجود طريقة للتمرير/تصفح أو فرز الروابط الدائمة، لمعرفة مخططات عناوين URL المتضمنة بشكل أفضل. ولكن خارج الموضوع، وبعد المرور عبر أنماط البحث، أنا متأكد من أن حالتنا، فقط الاثنين المذكورين أعلاه موجودان.
يبدو أن البرنامج النصي يقوم فقط بإنشاء الروابط الدائمة للفئات والمواضيع والمشاركات.
إذا كنت ترغب في إنشاء روابط دائمة للمستخدمين وملفات تعريف المستخدمين في النظام القديم تتضمن معرف الاستيراد الخاص بالمستخدم، فيمكنك إنشاؤها باستخدام القليل من لغة روبي في وحدة التحكم.
من الجيد معرفة ذلك. وتستخدم عناوين URL للمواضيع والمشاركات نفس البرنامج النصي PHP. لذلك، لاستبعاد أي تطبيع غير مقصود، يمكن تقسيم التعبير العادي الخاص بي إلى قسمين:
/^forum\\/(viewforum.php\\?.*)/\\1 للفئات/^forum\\/(viewtopic.php\\?.*)/\\1 للمواضيع والمشاركات… أو /^forum\\/(view(forum|topic).php\\?.*)/\\1، لست متأكدًا مما إذا كان هناك أي فرق هامشي من حيث الأداء.
على أي حال، من غير المرجح أن تحتوي عناوين URL للملفات الشخصية على أي روابط خلفية. نستخدمها لمنح المستخدمين الذين أبلغوا عن أخطاء أو الذين تم تضمين اقتراحاتهم في مشروعنا، الفضل في ملاحظات الإصدار الخاصة بنا. ولكن هذه حالة نادرة، على ما أعتقد، وتم تحديث الروابط في ملاحظات الإصدار الخاصة بنا على الفور عندما انتقلنا إلى Discourse.