Rota personalizada ignora algumas URLs do Discourse

Olá,

Estou tentando ignorar URLs específicas nesta rota personalizada usando o código abaixo.
(arquivo 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')}

“Não está funcionando como esperado. Você tem alguma experiência lidando com esse problema?”

Olá :slight_smile:

Qual é o contexto do que você está tentando alcançar?

Olá @Canapin

Estou usando funcionalidade personalizada para o tópico de URL do Drupal mostrado no site do Discourse.

Quando um usuário visita a URL antiga do site Drupal em um navegador da web, o sistema primeiro verifica as rotas personalizadas. Ele ignora certas URLs especificadas conforme mencionado nas rotas personalizadas ou vai para a função ‘custom_redirect’. Na função ‘custom_redirect’, ele encontra o tópico no Discourse e redireciona o navegador para esse link.

Se você está tentando redirecionar URLs do Drupal para o tópico correto do Discourse, você vai querer usar redirecionamentos de permalink e provavelmente normalizações de permalink.

Se você usou um script de importação, ele deve ter criado permalinks, que você pode ver em /admin/customize/permalinks. Se eles não estiverem funcionando, você pode usar uma normalização de permalink para corrigi-los.

@pfaffman
Não estou usando permalinks no discourse

Meu código está funcionando para posts antigos do site, redirecionando URLs para tópicos ou posts do discourse

Mas com este código, eles bloqueiam algumas URLs como login, signup, outros formulários

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

Você tem alguma ideia do que estou perdendo!!