- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/composite/helper.php
- Класс: BitrixMainCompositecan
- Вызов: can::convertUriToPath
static function convertUriToPath($uri, $host = null, $privateKey = null)
{
$uri = "/".trim($uri, "/");
$parts = explode("?", $uri, 2);
$uriPath = $parts[0];
$uriPath = preg_replace("~/index\.(php|html)$~i", "", $uriPath);
$uriPath = rtrim(str_replace("..", "__", $uriPath), "/");
$uriPath .= "/index";
$queryString = isset($parts[1]) ? self::removeIgnoredParams($parts[1]) : "";
$queryString = str_replace(".", "_", $queryString);
$host = self::getHttpHost($host);
if ($host <> '')
{
$host = "/".$host;
$host = preg_replace("/:(\d+)$/", "-\1", $host);
}
$privateKey = preg_replace("~[^a-z0-9/_]~i", "", (string)$privateKey);
if ($privateKey <> '')
{
$privateKey = "/".trim($privateKey, "/");
}
$cacheKey = $host.$uriPath."@".$queryString.$privateKey.".html";
return str_replace(array("?", "*"), "_", $cacheKey);
}