/**
  * Set request uri and iso lang
  */
 protected function setRequestUri()
 {
     // Get request uri (HTTP_X_REWRITE_URL is used by IIS)
     if (isset($_SERVER['REQUEST_URI'])) {
         $this->request_uri = $_SERVER['REQUEST_URI'];
     } else {
         if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
             $this->request_uri = $_SERVER['HTTP_X_REWRITE_URL'];
         }
     }
     $this->request_uri = rawurldecode($this->request_uri);
     if (isset(Context::getContext()->shop) && is_object(Context::getContext()->shop)) {
         $this->request_uri = preg_replace('#^' . preg_quote(Context::getContext()->shop->getBaseURI(), '#') . '#i', '/', $this->request_uri);
     }
     // If there are several languages, get language from uri
     if ($this->use_routes && Language::isMultiLanguageActivated()) {
         // Default Language
         $_GET['isolang'] = 'fr';
         if (preg_match('#^/([a-z-]{2,20})(?:/.*)?$#', $this->request_uri, $m)) {
             $sIsoCode = NowLanguageLink::getIsoCodeByFolderName($m[1]);
             if ($sIsoCode) {
                 $_GET['isolang'] = $sIsoCode;
                 $this->request_uri = substr($this->request_uri, strlen($m[1]) + 1);
             }
         }
     }
 }