안녕하세요,
아래 코드를 사용하여 이 커스텀 라우트에서 특정 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')}
“기대했던 대로 작동하지 않습니다. 이 문제를 처리한 경험이 있으신가요?”
안녕하세요 @Canapin
저는 Discourse 사이트에서 표시되는 Drupal URL 주제에 대해 사용자 정의 기능을 사용하고 있습니다.
사용자가 웹 브라우저에서 Drupal 사이트의 기존 URL을 방문하면, 시스템은 먼저 사용자 정의 라우트(custom routes)를 확인합니다. 사용자 정의 라우트에 명시된 특정 URL은 무시하거나, ‘custom_redirect’ 함수로 이동합니다. ‘custom_redirect’ 함수에서는 Discourse에서 해당 주제를 찾아 브라우저가 해당 링크로 리디렉션되도록 합니다.
pfaffman
(Jay Pfaffman)
10월 25, 2023, 4:18오후
6
드루팔 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’)}
제가 놓치고 있는 부분이 무엇인지 혹시 아이디어가 있으신가요?!