Ruta personalizada ignora algunas URL de discourse

Hola,

Estoy intentando ignorar URLs específicas en esta ruta personalizada usando el código a continuación.
(archivo 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')}

“No está funcionando como se esperaba. ¿Tienes alguna experiencia lidiando con este problema?”

Hola :slight_smile:

¿Cuál es el contexto de lo que intentas lograr?

Hola @Canapin

Estoy utilizando una funcionalidad personalizada para el tema de URL de Drupal que se muestra en el sitio de Discourse.

Cuando un usuario visita la URL antigua del sitio de Drupal en un navegador web, el sistema primero verifica las rutas personalizadas. Ignora ciertas URL especificadas como se menciona en las rutas personalizadas, o va a la función ‘custom_redirect’. En la función ‘custom_redirect’, encuentra el tema en Discourse y redirige el navegador a ese enlace.

Si intentas que las URL de Drupal redirijan 301 al tema adecuado de Discourse, querrás usar permalink redirects y probablemente permalink normalizations.

Si usaste un script de importación, debería haber creado permalinks, que puedes ver en /admin/customize/permalinks. Si no funcionan, puedes usar una normalización de permalinks para arreglarlos.

@pfaffman
No estoy usando permalinks en Discourse.

Mi código funciona para las URL de las publicaciones del sitio antiguo que redirigen a temas o publicaciones de Discourse.

Pero con este código, bloquean algunas URL como inicio de sesión, registro, otros formularios.

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

¿Tienes alguna idea de lo que me estoy perdiendo?