diff --git a/src/Symfony/Components/RequestHandler/Request.php b/src/Symfony/Components/RequestHandler/Request.php index 6cf5792ba3..bb8b3063a6 100644 --- a/src/Symfony/Components/RequestHandler/Request.php +++ b/src/Symfony/Components/RequestHandler/Request.php @@ -136,13 +136,14 @@ class Request 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5', 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'REMOTE_ADDR' => '127.0.0.1', + 'SCRIPT_NAME' => '', + 'SCRIPT_FILENAME' => '', + ), $server, array( 'REQUEST_METHOD' => strtoupper($method), 'PATH_INFO' => '', 'REQUEST_URI' => $uri, - 'SCRIPT_NAME' => '', - 'SCRIPT_FILENAME' => '', 'QUERY_STRING' => $queryString, - ), $server); + )); return new self($request, $query, array(), $cookies, $files, $server); } diff --git a/src/Symfony/Framework/WebBundle/Listener/RequestParser.php b/src/Symfony/Framework/WebBundle/Listener/RequestParser.php index bcef90b53d..4100131130 100644 --- a/src/Symfony/Framework/WebBundle/Listener/RequestParser.php +++ b/src/Symfony/Framework/WebBundle/Listener/RequestParser.php @@ -43,26 +43,22 @@ class RequestParser public function resolve(Event $event) { - if (!$event->getParameter('main_request')) - { - return; - } - $request = $event->getParameter('request'); - $this->container->setParameter('request.base_path', $request->getBasePath()); - - if ($request->path->get('_bundle')) - { - return; - } - + // set the context even if the parsing does not need to be done + // to have correct link generation $this->router->setContext(array( 'base_url' => $request->getBaseUrl(), 'method' => $request->getMethod(), 'host' => $request->getHost(), 'is_secure' => $request->isSecure(), )); + $this->container->setParameter('request.base_path', $request->getBasePath()); + + if (!$event->getParameter('main_request') || $request->path->has('_bundle')) + { + return; + } if (false !== $parameters = $this->router->match($request->getPathInfo())) {