До сих пор мое приложение Symfony размещало один домен. Теперь мне нужно разместить несколько страниц на другом домене. По деловым причинам он должен отображаться для пользователя как отдельный домен, даже если на самом деле он принадлежит одному и тому же приложению.
Допустим, мое приложение размещено на example1.com
. Мне нужно разместить несколько страниц на example2.com
.
Поэтому я создал новый контроллер:
class NewsletterController extends AbstractController
{
/**
* @Route("/unsubscribe", name="newsletter_unsubscribe", host="example2.com")
*/
public function unsubscribe(): Response
{
return $this->render('newsletter/unsubscribe.html.twig');
}
}
Это отлично работает; страница обслуживается правильно, а путь /unsubscribe
маршрутизируется только при запросе на example2.com
. На example1.com
он возвращает 404
, как и ожидалось.
Проблема в том, что теперь все маршруты, предназначенные для сопоставления в основном домене example1.com
, также сопоставляются в example2.com
, чего я не хочу.
Конечно, я мог бы изменить все остальные аннотации @Route
, чтобы включить host="example1.com"
, но это громоздко и чревато ошибками в будущем.
Есть ли способ требовать host
для всех маршрутов по умолчанию, если это не переопределено в аннотации @Route
?
@Route
над каждым классом контроллера будет работать и будет немного лучше, чем для каждого метода контроллера, я согласен. Тем не менее, если бы была глобальная настройка конфигурации, мне было бы удобнее! - person BenMorel   schedule 19.12.2019@Route
для каждого класса контроллера. Если вы хотите написать ответ, я приму его! - person BenMorel   schedule 19.12.2019