Это зависит от того, как вы определяете свои слои; например, моя «бизнес-логика» обычно представляет собой логику, связанную с проблемой, которую я пытаюсь решить, и ничего не знает об интерфейсе пользователя. Поэтому он не может выполнить перенаправление, так как не имеет доступа к запросу / ответу.
Лично я бы сделал это на уровне пользовательского интерфейса; Работа с необработанными взаимодействиями, такими как привратник и хранитель, является частью работы уровня пользовательского интерфейса для веб-приложения. ИМО. Например, через http-модуль, который (по определению) является компонентом уровня пользовательского интерфейса.