protected function _ParseRequest() {
      $this->_Parsing = TRUE;

      /**
       * Resolve final request to send to dispatcher
       */
       
      $Path = $this->_EnvironmentElement('URI');
       
      // Get the dispatch string from the URI
      if($Path !== FALSE) {
         $this->Path(trim($Path, '/'));
      } else {
         $Expression = '/^(?:\/?'.str_replace('/', '\/', $this->_EnvironmentElement('Folder')).')?(?:'.$this->_EnvironmentElement('Script').')?\/?(.*?)\/?(?:[#?].*)?$/i';
         if (preg_match($Expression, $this->_EnvironmentElement('URI'), $Match))
            $this->Path($Match[1]);
         else
            $this->Path('');
      }

      /**
       * Resolve optional output modifying file extensions (rss, json, etc)
       */

      $UrlParts = explode('/', $this->Path());
      $Last = array_slice($UrlParts, -1, 1);
      $LastParam = array_pop($Last);
      $Match = array();
      if (preg_match('/^(.+)\.([^.]{1,4})$/', $LastParam, $Match)) {
         $this->OutputFormat($Match[2]);
         $this->Filename($Match[0]);
         //$this->Path(implode('/',array_slice($UrlParts, 0, -1)));
      }

      /**
       * Resolve WebRoot
       */

      // Attempt to get the webroot from the server
      $WebRoot = FALSE;
      if (!$WebRoot) {
         $WebRoot = explode('/', GetValue('PHP_SELF', $_SERVER, ''));

         // Look for index.php to figure out where the web root is.
         $Key = array_search('index.php', $WebRoot);
         if ($Key !== FALSE) {
            $WebRoot = implode('/', array_slice($WebRoot, 0, $Key));
         } else {
            // Could not determine webroot.
            $WebRoot = '';
         }
         
      }
      
      $ParsedWebRoot = trim($WebRoot,'/');
      $this->WebRoot($ParsedWebRoot);

      /**
       * Resolve Domain
       */

      $Domain = FALSE;
      if ($Domain === FALSE || $Domain == '')
         $Domain = $this->Host();

      if ($Domain != '' && $Domain !== FALSE) {
         if (!stristr($Domain,'://'))
            $Domain = $this->Scheme().'://'.$Domain;

         $Domain = trim($Domain, '/');
      }
      $this->Domain($Domain);
      
      $this->_Parsing = FALSE;
      $this->_HaveParsedRequest = TRUE;
   }