Однако у меня возникла следующая проблема: для доступа к некоторым размещённым ссылкам требуется авторизация в других инструментах (например, Jira, Google и т. д.). В результате все такие ссылки (и блоки для некоторых преобразованных URL) просто показывают Login to support или Meet Google Drive – One place for all your files[...], что выглядит не очень хорошо.
Существует ли уже какая-либо функция, компонент или плагин, позволяющие предварительно проверить URL и, в случае перенаправления, не отображать заголовок для ссылки?
Да, наше общее решение здесь — использование настройки сайта blocked onebox domains.
Добавьте все внутренние URL, требующие входа в систему, в этот список.
Мне интересно, @nat/@codinghorror, стоит ли нам добавить здесь настройку «сledgehammer».
block onebox on redirect — эта настройка может полностью блокировать любые onebox-превью, если происходит перенаправление. Это даёт очень простой рычаг для безусловного контроля такого поведения на множестве доменов.
Спасибо за подсказку насчёт внутренних ссылок.
Мы очень ценим возможность включения более общей функции «блокировать onebox при перенаправлении», так как мы не можем заранее знать полный список ссылок, которые могут публиковать пользователи.
Похоже, это не работает для ссылок, которые были преобразованы в гиперссылки, но не были обновлены до «onebox», а просто отображаются как заголовок (например, наша внутренняя ссылка https://support.sqills.com/browse/SCQI-934 превращается в Log in - Sqills Jira, тогда как базовый URL просто отображает https://support.sqills.com как заголовок ссылки).
Мы исправим эту небольшую проблему на этой неделе, чтобы снизить нагрузку на поддержку. Блокировка перенаправления как вариант мне кажется отличным решением, возможно, мы сможем это реализовать. Может быть, лучше сформулировать как «блокировать onebox при перенаправлении между доменами», или это слишком детально… не уверен.
Теперь при перестроении поста записи кэша для всех ссылок в посте удаляются до начала процесса перестроения.
А вот PR для добавления настройки сайта block_onebox_on_redirect:
Когда включена настройка block_onebox_on_redirect, Discourse никогда не будет создавать onebox для URL-адресов, которые перенаправляют. Единственное исключение — если URL использует http и перенаправляет на https-версию того же URL. Это сделано потому, что сайты, поддерживающие TLS, очень часто перенаправляют http-трафик на https, поэтому onebox должен продолжать работать, даже если пользователь, например, введет ссылку с http, а сайт перенаправит на https.