تعديل: قمت بتغيير عنوان الموضوع ليتوافق مع المشكلة التي اكتشفتها، وذلك بفضل الإجابات أدناه
أواجه سلوكًا غريبًا مع الروابط الدائمة (permalinks) في عملي على الترحيل.
مشكلتي ليست تلك المتعلقة بالروابط الداخلية التي لا تقوم بإعادة التوجيه. أنا فقط أجرب ذلك عن طريق لصق الروابط في شريط عنوان المتصفح.
هذان هما إعادة التوجيه اللذان أرمي إلى حدوثهما في اختباراتي:
هذه إعادة توجيه لـ منشور، ويجب أن توجه إلى المنشور الثاني على النحو التالي:
هذه إعادة توجيه لـ موضوع، ويجب أن توجه إلى:
أعلم أن عمليات التطبيع (normalizations) الخاصة بي تعمل بشكل صحيح. تعبيراتي النمطية (regexp) هي:
/(?:.*)(\/)(?<topicid>\d*.)-(.[^\/#\?]*)(?<parm>\?(\w*)[=](?<start>\d+))?(?:\/)?(\D+(\/)?)?(?<postid>\d+)?(?:\/)?/normalized.\k<topicid>.\k<postid>
وأقوم بفحصها في وحدة تحكم rails:
irb(main):069:0> Permalink.normalize_url('https://community.suitecrm.com/languages/17978-why-two-italian-language-packs#16249')
=> "normalized.17978.16249"
irb(main):068:0> Permalink.normalize_url('https://community.suitecrm.com/languages/17978-why-two-italian-language-packs')
=> "normalized.17978."
هذا هو ما كنت أعتزمه. لدي هذا في جدول Permalinks:
وهذا ما يبدو عليه من قاعدة البيانات:
لكن عندما أضع هذا في عنوان URL للمتصفح
يتم إعادة توجيهه إلى
بدلاً من ما يجب أن يكون عليه
لذا أرى المنشور الأول، ولا يتم التمرير إلى المنشور الثاني كما يجب.
لماذا يتم إضافة تجزئة #16249 مرة أخرى، إذا كان تطبيقي قد أزالها؟
طريقة أخرى لكشف هذا التناقض (رغم أنها اصطناعية بعض الشيء) هي تجربة إعادة التوجيه التالية من شريط عنوان المتصفح:
https://community.suitecrm.com/normalized.17978.
يتم إعادة التوجيه بشكل صحيح إلى:
Reports disappeared - 💬 General Discussion - SuiteCRM
و Why two Italian language packs? - #2 by roberto - Translation and Language Packs - SuiteCRM
يتم إعادة التوجيه بشكل صحيح إلى
Reports disappeared - #2 by erevodifosin - 💬 General Discussion - SuiteCRM
إذن لماذا لا يعمل الأمر عند المرور عبر العملية العادية؟


