public function redirect($canonical) {
        if (!preg_match('~^[a-z]+://~', $canonical)) {
            $canonical = new Garp_Util_FullUrl($canonical);
        }
        $controller = $this->getActionController();
        $controller->getHelper('cache')->disable();
        $controller->getHelper('viewRenderer')->setNoRender(true);
        $controller->getHelper('layout')->disableLayout();
        $controller->getHelper('redirector')->gotoUrl((string)$canonical, array('code' => 301));
    }