/** * Make sure site home pages are loaded at the root of the site. */ public function contentcontrollerInit($controller) { // If we've accessed the homepage as /home/, then we should redirect to /. if ($controller->dataRecord && $controller->dataRecord instanceof SiteTree && MultisitesRootController::should_be_on_root($controller->dataRecord) && (!isset($controller->urlParams['Action']) || !$controller->urlParams['Action']) && !$_POST && !$_FILES && !$controller->redirectedTo()) { $getVars = $_GET; unset($getVars['url']); if ($getVars) { $url = "?" . http_build_query($getVars); } else { $url = ""; } $controller->redirect($url, 301); return; } }
public function handleRequest(SS_HTTPRequest $request, DataModel $model = null) { self::$is_at_root = true; $this->setDataModel($model); $this->pushCurrent(); $this->init(); if (!($site = Multisites::inst()->getCurrentSiteId())) { return $this->httpError(404); } $page = SiteTree::get()->filter(array('ParentID' => $site, 'URLSegment' => 'home')); if (!($page = $page->first())) { return $this->httpError(404); } $request = new SS_HTTPRequest($request->httpMethod(), $page->RelativeLink(), $request->getVars(), $request->postVars()); $request->match('$URLSegment//$Action', true); $front = new MultisitesFrontController(); $response = $front->handleRequest($request, $model); $this->popCurrent(); return $response; }