public function routeStartup(\Zend_Controller_Request_Abstract $request) { /** @var $request \Zend_Controller_Request_Http */ if (!$request->isGet()) { return; } $host = 'http://' . $request->getHttpHost(); $uri = \Zend_Uri_Http::fromString($host . $request->getRequestUri()); $query = $uri->getQueryAsArray(); if (!isset($query['_escaped_fragment_'])) { return; } $path = $uri->getPath() . ltrim($query['_escaped_fragment_'], '/'); $uri->setPath($path); unset($query['_escaped_fragment_']); $uri->setQuery($query); $request->setRequestUri(str_replace($host, '', $uri->getUri())); $request->setPathInfo(); }
/** * Called before Zend_Controller_Front begins evaluating the * request against its routes. * * @param Zend_Controller_Request_Abstract $request * @return void */ public function routeStartup(Zend_Controller_Request_Abstract $request) { $frontController = Zend_Controller_Front::getInstance(); // Request keys $moduleKey = $request->getModuleKey(); $controllerKey = $request->getControllerKey(); $actionKey = $request->getActionKey(); // Defaults $moduleName = $frontController->getDefaultModule(); $controllerName = $frontController->getDefaultControllerName(); $actionName = $frontController->getDefaultAction(); // Set a url path $module = $request->getQuery($moduleKey, $moduleName); $controller = $request->getQuery($controllerKey, $controllerName); $action = $request->getQuery($actionKey, $actionName); // Assemble if ($request->getPathInfo() == '/') { $modulePart = $module == $moduleName ? $module : '/' . $module; $controllerPart = $controller == $controllerName && $action == $actionName ? '' : '/' . $controller; $actionPart = $action == $actionName && $controller ? '' : '/' . $action; $request->setPathInfo($modulePart . $controllerPart . $actionPart); } }