• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlrewriter.php
  • Класс: BitrixMainUrlRewriter
  • Вызов: UrlRewriter::checkPath
static function checkPath($path)
{
	static $searchMasksCache = false;
	if (is_array($searchMasksCache))
	{
		$arExc = $searchMasksCache["exc"];
		$arInc = $searchMasksCache["inc"];
	}
	else
	{
		$arExc = array();
		$arInc = array();

		$inc = ConfigOption::get("main", "urlrewrite_include_mask", "*.php");
		$inc = str_replace("'", "\'", str_replace("*", ".*?", str_replace("?", ".", str_replace(".", "\.", str_replace("\", "/", $inc)))));
		$arIncTmp = explode(";", $inc);
		foreach ($arIncTmp as $preg_mask)
			if (trim($preg_mask) <> '')
				$arInc[] = "'^".trim($preg_mask)."$'";

		$exc = ConfigOption::get("main", "urlrewrite_exclude_mask", "/bitrix/*;");
		$exc = str_replace("'", "\'", str_replace("*", ".*?", str_replace("?", ".", str_replace(".", "\.", str_replace("\", "/", $exc)))));
		$arExcTmp = explode(";", $exc);
		foreach ($arExcTmp as $preg_mask)
			if (trim($preg_mask) <> '')
				$arExc[] = "'^".trim($preg_mask)."$'";

		$searchMasksCache = array("exc" => $arExc, "inc" => $arInc);
	}

	$file = IOPath::getName($path);
	if (mb_substr($file, 0, 1) === ".")
		return 0;

	foreach ($arExc as $preg_mask)
		if (preg_match($preg_mask, $path))
			return false;

	foreach ($arInc as $preg_mask)
		if (preg_match($preg_mask, $path))
			return true;

	return false;
}