public function testInstance() { $rule = new RedirectRule([1, Redirect::TYPE_EXACT, Redirect::TARGET_TYPE_PATH_URL, '/from/url', '/to/url', null, null, 301, null, Carbon::today(), Carbon::tomorrow()]); self::assertEquals(1, $rule->getId()); self::assertEquals(Redirect::TYPE_EXACT, $rule->getMatchType()); self::assertEquals(Redirect::TARGET_TYPE_PATH_URL, $rule->getTargetType()); self::assertEquals('/from/url', $rule->getFromUrl()); self::assertEquals('/to/url', $rule->getToUrl()); self::assertEquals(301, $rule->getStatusCode()); self::assertEquals(Carbon::today(), $rule->getFromDate()); self::assertEquals(Carbon::tomorrow(), $rule->getToDate()); }
/** * Redirect with specific rule * * @param RedirectRule $rule * @return void */ public function redirectWithRule(RedirectRule $rule) { $this->updateStatistics($rule->getId()); if ($rule->getStatusCode() === 404) { abort($rule->getStatusCode(), 'Not Found'); } $toUrl = $this->getLocation($rule); if (!$toUrl || empty($toUrl)) { return; } header('Location: ' . $toUrl, true, $rule->getStatusCode()); exit; }