Itinéraire personnalisé ignore quelques URL de discourse

Salut,

J’essaie d’ignorer des URL spécifiques sur cette route personnalisée en utilisant le code ci-dessous.
(fichier 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')}

« Ça ne fonctionne pas comme prévu. Avez-vous de l’expérience avec ce problème ? »

Salut :slight_smile:

Quel est le contexte de ce que vous essayez d’accomplir ?

salut @Canapin

J’utilise une fonctionnalité personnalisée pour le sujet d’URL Drupal montré dans le discourse
site.

Lorsqu’un utilisateur visite l’ancienne URL du site Drupal dans un navigateur Web, le système vérifie d’abord dans les routes personnalisées. Il ignore soit certaines URL spécifiées comme mentionné dans les routes personnalisées, soit il passe à la fonction ‘custom_redirect’. Dans la fonction ‘custom_redirect’, il trouve le sujet dans Discourse et redirige le navigateur vers ce lien.

Si vous essayez de faire en sorte que les URL Drupal redirigent en 301 vers le sujet Discourse approprié, vous voudrez utiliser les redirections de permaliens et probablement les normalisations de permaliens.

Si vous avez utilisé un script d’importation, il aurait dû créer des permaliens, que vous pouvez voir sur /admin/customize/permalinks. S’ils ne fonctionnent pas, vous pouvez utiliser une normalisation de permalien pour les corriger.

@pfaffman
Je n’utilise pas de permaliens dans Discourse

Mon code fonctionne pour les anciens articles du site redirigeant les URL vers des sujets ou des articles Discourse

Mais avec ce code, ils bloquent certaines URL comme la connexion, l’inscription, d’autres formulaires

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

Avez-vous une idée de ce qui me manque !!