Спасибо за предоставление переменной. С помощью этой документации мне удалось заставить всё работать.
Я изменил app.yml следующим образом, сохранил, а затем выполнил ./launcher restart app (пересборка не требуется).
env:
DISCOURSE_RATE_LIMIT_SEARCH_ANON_GLOBAL_PER_MINUTE: 0
Теперь страница /search недоступна — отлично.
Теперь кнопка поиска на фронтенде мгновенно возвращает сообщение: «Вы выполнили это действие слишком много раз» — отлично.
Вы можете скрыть кнопку поиска с помощью:
.anon #search-button {
display: none !important;
}
Но возникает вопрос: достаточно ли этого? Может ли кто-нибудь просто создать простой cookie-файл сессии, чтобы притвориться авторизованным пользователем и получить доступ к содержимому сайта через поиск?
Более тщательное, но неполное решение:
Файл: /var/www/discourse/app/controllers/search_controller.rb
Изменение: добавьте «if current_user.present?» после «def show» и добавьте «end» в конце условия.
Однако мне не удалось сделать это изменение постоянным после перезапуска. Поэтому любой, кто знает, как сделать это постоянным после перезапуска с помощью функции app.yml hooks after_code replace, может поделиться решением.