public function createSiteUri(ControllerContext $controllerContext, Site $site)
{
$primaryDomain = $site->getPrimaryDomain();
if ($primaryDomain === null) {
throw new NeosException(sprintf('Cannot link to a site "%s" since it has no active domains.', $site->getName()), 1460443524);
}
$requestUri = $controllerContext->getRequest()->getHttpRequest()->getUri();
$baseUri = $controllerContext->getRequest()->getHttpRequest()->getBaseUri();
$port = $primaryDomain->getPort() ?: $requestUri->getPort();
return sprintf('%s://%s%s%s', $primaryDomain->getScheme() ?: $requestUri->getScheme(), $primaryDomain->getHostPattern(), $port && !in_array($port, [80, 443], true) ? ':' . $port : '', rtrim($baseUri->getPath(), '/'));
}