مسار مخصص يتجاهل بعض عناوين URL من Discourse

مرحباً،

أحاول تجاهل عناوين URL محددة في هذا المسار المخصص باستخدام الكود أدناه.
(ملفات routes.rb)

get '/*path' => 'static#custom_redirect', constraints: lambda { |request| !request.path.include?('/preferences/' ) || !request.path.include?('/custom_sso_login/') || !request.path.include?('/t/' ) || !request.path.include?('/admin/') || !request.path.include?('/singup') || !request.path.include?('/login')}

“لا يعمل كما هو متوقع. هل لديك أي خبرة في التعامل مع هذه المشكلة؟”

مرحباً :slight_smile:

ما هو سياق ما تحاول تحقيقه؟

مرحباً @Canapin

أنا أستخدم وظائف مخصصة لموضوع عنوان URL الخاص بـ Drupal الموضح في موقع discourse.

عندما يزور المستخدم عنوان URL القديم لموقع Drupal في متصفح الويب، يتحقق النظام أولاً من المسارات المخصصة. إما أنه يتجاهل عناوين URL معينة محددة كما هو مذكور في المسارات المخصصة، أو ينتقل إلى دالة ‘custom_redirect’. في دالة ‘custom_redirect’، يجد الموضوع في Discourse ويعيد توجيه المتصفح إلى هذا الرابط.

إذا كنت تحاول جعل عناوين Drupal URL تتحول 301 إلى موضوع Discourse المناسب، فستحتاج إلى استخدام permalink redirects وربما permalink normalizations.

إذا استخدمت برنامج استيراد، فيجب أن يكون قد أنشأ روابط دائمة، والتي يمكنك رؤيتها في /admin/customize/permalinks. إذا لم تكن تعمل، فيمكنك استخدام تطبيع الروابط الدائمة لإصلاحها.

@pfaffman
أنا لا أستخدم الروابط الدائمة في discourse

رمزي يعمل لتدوينات الموقع القديمة URL لإعادة التوجيه إلى مواضيع أو تدوينات discourse

ولكن مع هذا الرمز، فإنها تمنع بعض عناوين URL مثل تسجيل الدخول، التسجيل، نماذج أخرى

get ‘/*path’ => ‘static#custom_redirect’, constraints: lambda { |request| !request.path.include?(‘/preferences/’ ) || !request.path.include?(‘/custom_sso_login/’) || !request.path.include?(‘/t/’ ) || !request.path.include?(‘/admin/’) || !request.path.include?(‘/singup’) || !request.path.include?(‘/login’)}

هل لديك فكرة عما أفتقده!!