В обоих случаях это не работает, когда тема открывается из форума. При клике загружается обычный URL темы, но если обновить страницу темы, находясь на ней, тогда происходит перенаправление на внешний URL
Как мне заставить это работать правильно, чтобы при клике на определенную тему происходило перенаправление на другой URL?
Похоже, вам придётся изменить URL напрямую для самой темы в разделе категорий. Тогда она будет вести сразу на внешний URL — это также сэкономит шаг: не нужно будет сначала кликать и загружать тему, а затем кликать по ней второй раз. Надеюсь, кто-нибудь из команды Discourse откликнется, если это может нарушить работу отображения категорий и их соответствующих URL.
Сначала перейдите в тему, для которой вы хотите создать перенаправление на внешний URL;
Создайте пост с любым текстом, который вы хотите, вместе с внешним URL;
2a (Опционально: Если во внешнем URL есть графический заголовок, вы можете использовать Onebox для URL в своём первом посте, что обеспечит визуальную поддержку вашей внешней ссылке.)
Закрепите этот пост глобально (он всегда будет оставаться вверху списка постов в этой теме); и в качестве опции,
Если вы не хотите/не ожидаете новых постов в этой теме, закройте тему также.
Таким образом, вы вряд ли сломаете какие-либо ссылки на тему внутри Discourse, и у вас будет ваш внешний URL всегда вверху, когда пользователи переходят в эту тему.
Редактирование: Глобальное закрепление также должно держать эту тему вверху списка, когда пользователь нажимает на «Последние».