• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/classes/general/seo_page_checker.php
  • Класс: CSeoPageChecker
  • Вызов: CSeoPageChecker::IsOuterUrl
function IsOuterUrl($url)
{
	if (strncmp($url, '#', 1) === 0) return false;
	if (strncmp($url, 'mailto:', 7) === 0) return false;
	if (strncmp($url, 'javascript:', 11) === 0) return false;

	$pos = mb_strpos($url, '://');
	if ($pos === false) return false;

	static $arDomainNames = null;

	if (null == $arDomainNames)
	{
		$arDomainNames = array($_SERVER['SERVER_NAME']);

		$dbRes = CSite::GetList('sort', 'asc', array('ACTIVE' => 'Y'));
		while ($arSite = $dbRes->Fetch())
		{
			if ($arSite['DOMAINS'])
				$arDomainNames = array_merge($arDomainNames, explode("rn", $arSite['DOMAINS']));
		}

		$arDomainNames = array_values(array_unique($arDomainNames));
	}

	$url = mb_substr($url, $pos + 3);
	$pos = mb_strpos($url, '/');

	if ($pos === false)
	{
		$pos = mb_strlen($url);
	}

	$domain = mb_substr($url, 0, $pos);
	if (mb_substr($domain, 0, 4) == 'www.')
	{
		$domain = mb_substr($domain, 4);
	}

	if ($domain)
		return !in_array($domain, $arDomainNames);

	return false;
}