Я не смог заставить работать подход yaml, поэтому вместо этого я переписал маршрут с помощью специального действия перенаправления следующим образом:
/**
* @Route("/resetting/reset/{token}",
* name="fos_user_resetting_reset_override",
* host="{domain}",
* defaults={"domain"="%a_domain%"},
* requirements={"domain"="(%a_domain%)"},
* )
*/
public function redirectResettingRouteToBDomain(string $token): RedirectResponse
{
// generate the current url with an absolute path
$path = $this->generateUrl(
'fos_user_resetting_reset',
['token' => $token],
UrlGeneratorInterface::ABSOLUTE_PATH
);
// replace A_DOMAIN with B_DOMAIN in the path
$domain = preg_replace(
'/' . preg_quote(getenv('A_DOMAIN'), '/') . '/',
getenv('B_DOMAIN'),
$this->getRequest()->server->get('HTTP_HOST')
);
// ensure the redirect works on http and https
$url = '//' . $domain . $path;
return $this->redirect($url);
}
Обратите внимание, что я настроил переменные env для A_DOMAIN
и B_DOMAIN
, а затем сделал их доступными как параметры a_domain
и b_domain
.
По существу, действие контроллера выше запускается только на A_DOMAIN
, переопределяя маршрут по умолчанию fos_user_resetting_reset
для B_DOMAIN
, а затем перенаправляет запрос.