커스텀 라우트에서 discourse의 일부 URL 무시

안녕하세요,

아래 코드를 사용하여 이 커스텀 라우트에서 특정 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

저는 Discourse 사이트에서 표시되는 Drupal URL 주제에 대해 사용자 정의 기능을 사용하고 있습니다.

사용자가 웹 브라우저에서 Drupal 사이트의 기존 URL을 방문하면, 시스템은 먼저 사용자 정의 라우트(custom routes)를 확인합니다. 사용자 정의 라우트에 명시된 특정 URL은 무시하거나, ‘custom_redirect’ 함수로 이동합니다. ‘custom_redirect’ 함수에서는 Discourse에서 해당 주제를 찾아 브라우저가 해당 링크로 리디렉션되도록 합니다.

드루팔 URL을 올바른 디스커스 토픽으로 301 리다이렉트하려는 경우, permalink redirects와 아마도 permalink normalizations를 사용해야 합니다.

가져오기 스크립트를 사용했다면 퍼마링크가 생성되었을 것입니다. /admin/customize/permalinks에서 이를 확인할 수 있습니다. 작동하지 않는 경우, 퍼마링크 정규화(permalink normalization)를 사용하여 수정할 수 있습니다.

@pfaffman
저는 discourse에서 영구 링크(permalinks)를 사용하지 않습니다.

제 코드는 기존 사이트 게시물의 URL을 discourse의 주제나 게시물로 리디렉션하는 데에는 정상적으로 작동합니다.

하지만 이 코드를 사용하면 login, signup, 기타 폼과 같은 일부 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’)}

제가 놓치고 있는 부분이 무엇인지 혹시 아이디어가 있으신가요?!