- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/web/webpacker/builder.php
- Класс: BitrixMainWebWebPackerBuilder
- Вызов: Builder::getDefaultSiteUri
static function getDefaultSiteUri()
{
if (self::$siteUri)
{
return self::$siteUri;
}
$url = ConfigConfiguration::getValue('main.webpacker')['last_site_url'] ?? '';
if ($url)
{
self::$siteUri = $url;
return $url;
}
$server = Context::getCurrent()->getServer();
$url = $server->getHttpHost();
$canSave = !empty($url) && (!defined('BX_CRONTAB') || !BX_CRONTAB);
$isRestored = false;
if (!$url)
{
$url = ConfigOption::get('main', 'last_site_url', null);
if ($url)
{
$isRestored = true;
}
else
{
$url = ConfigOption::get('main', 'server_name', null);
$url = $url ?: $server->getServerName();
if (!$url)
{
$defaultSites = CSite::getDefList();
while($defaultSite = $defaultSites->fetch())
{
$url = $defaultSite['SERVER_NAME'];
if ($url)
{
break;
}
}
}
}
}
if (!$isRestored)
{
if (strpos($url, ':') === false && $server->getServerPort())
{
if (!in_array($server->getServerPort(), array('80', '443')))
{
$url .= ':' . $server->getServerPort();
}
}
$url = (Context::getCurrent()->getRequest()->isHttps() ? "https" : "http")
. "://" . $url;
}
$uri = new Uri($url);
$url = $uri->getLocator();
if (mb_substr($url, -1) == '/')
{
$url = mb_substr($url, 0, -1);
}
if ($canSave)
{
ConfigOption::set('main', 'last_site_url', $url);
}
self::$siteUri = $url;
return $url;
}