code: protected function resolveRequestUri()
      {
          if ($this->headers->has('X-Rewrite-Url')) { // IIS
              $requestUri = $this->headers->get('X-Rewrite-Url');
          } elseif (isset($_SERVER['REQUEST_URI'])) {
              $requestUri = $_SERVER['REQUEST_URI'];
              if ($requestUri !== '' && $requestUri[0] !== '/') {
                  $requestUri = preg_replace('/^(http|https):\/\/[^\/]+/i', '', $requestUri);
              }
          } elseif (isset($_SERVER['ORIG_PATH_INFO'])) { // IIS 5.0 CGI
              $requestUri = $_SERVER['ORIG_PATH_INFO'];
              if (!empty($_SERVER['QUERY_STRING'])) {
                  $requestUri .= '?' . $_SERVER['QUERY_STRING'];
              }
          } else {
              throw new InvalidConfigException('Unable to determine the request URI.');
          }
  
          return $requestUri;
      }
docs: Resolves the request URI portion for the currently requested URL.
  This refers to the portion that is after the [[hostInfo]] part. It includes the [[queryString]] part if any.
  The implementation of this method referenced Zend_Controller_Request_Http in Zend Framework.
  @return string|bool the request URI portion for the currently requested URL.
  Note that the URI returned may be URL-encoded depending on the client.
  @throws InvalidConfigException if the request URI cannot be determined due to unusual server configuration