Esempio n. 1
0
 public function getRequestedPage()
 {
     if ($this->requestedFile != null) {
         return $this->requestedFile;
     }
     $page = $this->getScriptName();
     $page = IO\Path::normalize($page);
     if (IO\Path::validate($page)) {
         return $this->requestedFile = $page;
     }
     throw new SystemException("Script name is not valid");
 }
Esempio n. 2
0
 public function convertToPath()
 {
     if ($this->uriType != UriType::RELATIVE) {
         $path = $this->parse(UriPart::PATH);
     } else {
         $path = $this->uri;
         $p = strpos($path, "?");
         if ($p !== false) {
             $path = substr($path, 0, $p);
         }
     }
     if (substr($path, -1, 1) === "/") {
         $path = self::addDirectoryIndex($path);
     }
     $path = IO\Path::normalize($path);
     if (IO\Path::validate($path)) {
         return $path;
     }
     throw new \Bitrix\Main\SystemException("Uri is not valid");
 }
Esempio n. 3
0
 private function transferUri($url)
 {
     $url = IO\Path::normalize($url);
     $urlTmp = trim($url, " \t\n\r\v\\/");
     if (empty($urlTmp)) {
         throw new ArgumentNullException("url");
     }
     $ext = IO\Path::getExtension($url);
     if (strtolower($ext) != "php") {
         throw new SystemException("Only php files are allowable for url rewriting");
     }
     $arUrl = explode("/", $url);
     $rootDirName = "";
     while (!empty($arUrl) && ($rootDirName = array_shift($arUrl)) === "") {
     }
     $rootDirName = strtolower(str_replace(".", "", $rootDirName));
     if (in_array($rootDirName, array("bitrix", "local", "upload"))) {
         throw new SystemException(sprintf("Can not use path '%s' for url rewriting", $url));
     }
     if (!IO\Path::validate($url)) {
         throw new SystemException(sprintf("Path '%s' is not valid", $url));
     }
     $absUrl = IO\Path::convertRelativeToAbsolute($url);
     if (!IO\File::isFileExists($absUrl)) {
         throw new SystemException(sprintf("Path '%s' is not found", $url));
     }
     $absUrlPhysical = IO\Path::convertLogicalToPhysical($absUrl);
     global $APPLICATION, $USER, $DB;
     include_once $absUrlPhysical;
     die;
 }
Esempio n. 4
0
 /**
  * Converts request uri into path safe file with .html extention.
  * Returns empty string if fails.
  *
  * @param string $Uri
  * @return string
  */
 public static function convertUriToPath($Uri, $host = "")
 {
     $match = array();
     if (preg_match("#^(/.+?)\\.php\\?([^\\\\/]*)#", $Uri, $match) > 0) {
         $PageFile = $match[1] . "@" . $match[2];
     } elseif (preg_match("#^(/.+)\\.php\$#", $Uri, $match) > 0) {
         $PageFile = $match[1] . "@";
     } elseif (preg_match("#^(/.+?|)/\\?([^\\\\/]*)#", $Uri, $match) > 0) {
         $PageFile = $match[1] . "/index@" . $match[2];
     } elseif (preg_match("#^(/.+|)/\$#", $Uri, $match) > 0) {
         $PageFile = $match[1] . "/index@";
     } else {
         return "";
     }
     if (strlen($host) > 0) {
         $host = "/" . $host;
         $host = preg_replace("/:(\\d+)\$/", "-\\1", $host);
     }
     $PageFile = $host . str_replace(".", "_", $PageFile) . ".html";
     if (!Main\IO\Path::validate($PageFile)) {
         return "";
     }
     if (Main\IO\Path::normalize($PageFile) !== $PageFile) {
         return "";
     }
     return $PageFile;
 }