Eigene Route ignoriert einige URLs von Discourse

Hallo,

Ich versuche, bestimmte URLs in dieser benutzerdefinierten Route mit dem folgenden Code zu ignorieren.
(routes.rb Dateien)

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')}

„Es funktioniert nicht wie erwartet. Haben Sie Erfahrung mit diesem Problem?“

Hallo :slight_smile:

Was ist der Kontext dessen, was Sie zu erreichen versuchen?

Hallo @Canapin

Ich verwende eine benutzerdefinierte Funktionalität für das Drupal-URL-Thema, das auf der Discourse-Website gezeigt wird.

Wenn ein Benutzer die alte URL der Drupal-Website in einem Webbrowser besucht, prüft das System zuerst benutzerdefinierte Routen. Es ignoriert entweder bestimmte angegebene URLs, wie in den benutzerdefinierten Routen erwähnt, oder es geht zur Funktion ‘custom_redirect’. In der Funktion ‘custom_redirect’ findet es das Thema in Discourse und leitet den Browser zu diesem Link weiter.

Wenn Sie versuchen, Drupal-URLs auf das richtige Discourse-Thema per 301 umzuleiten, dann möchten Sie permalink redirects und wahrscheinlich permalink normalizations verwenden.

Wenn Sie ein Import-Skript verwendet haben, sollte dieses Permalinks erstellt haben, die Sie unter /admin/customize/permalinks sehen können. Wenn sie nicht funktionieren, können Sie eine Permalinks-Normalisierung verwenden, um sie zu korrigieren.

@pfaffman
Ich verwende keine Permalinks in Discourse

Mein Code funktioniert für alte Website-Posts-URLs, die zu Discourse-Themen oder -Posts umgeleitet werden

Aber mit diesem Code blockieren sie einige URLs wie Login, Signup, andere Formulare

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’)}

Hast du eine Idee, was ich vermisse!!