كيف تعمل تطبيع الرابط الدائم باستخدام regex؟

ذهبت إلى هذا الإعداد المسؤول > الروابط الدائمة > الإعدادات
والذي يقول إنه سيطبق التعبير العادي قبل مطابقة الرابط الدائم.

لدي عنوان URL قديم لمنتدى xenforo وهو
http://localhost/threads/xyz-abc-is-ghp.223846/

وعنوان URL الجديد لـ discourse هو
http://localhost/t/xyz-abc-is-ghp/274528

عندما أدخل عنوان URL الخاص بـ xenforo في المتصفح بدون الشعار (slug) مثل ما يلي، فإنه يعيد التوجيه بشكل صحيح ولكن ليس معه.
http://localhost/threads/223846/

لذلك حاولت استخدام التعبير العادي التالي لإزالة الشعار (slug) ولكنه يبدو أنه لا يفعل شيئًا. هل فاتني خطوة أم أن هذه ليست الطريقة الصحيحة للقيام بذلك؟
/^(/threads/)[^.]+.(\d+)/?$/+/\1\2

إعجاب واحد (1)

لا تحتاج إلى \\2. وتحتاج إلى \\ قبل النقطة التي تبحث عنها. لديك شيء واحد فقط بين قوسين. ربما شيء مثل

/^(/threads/)[^.]+\\.(\\d+)/?$/threads/\\1
إعجاب واحد (1)

/threads\\/[^.]+\\.([0-9]+)\\/?/threads/\\1

هذا نجح

3 إعجابات

مرحباً، أنا في نفس الموقف وهذا نجح معي! :clinking_beer_mugs:

ولكن عندما يحتوي الرابط (رابط xenforo) على صفحات داخلية مثل على سبيل المثال “https://website[.]com/threads/thread-slug/page-3” عندها سأحصل مرة أخرى على صفحة الخطأ “عفوًا! هذه الصفحة غير موجودة أو خاصة.” هل هناك حل لهذا؟

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.