/** * Check for overrides * * @param string $uri * @return string|false */ private function checkOverride($uri) { // 1st priority: /robots.txt is permanent allowed if (parse_url($uri, PHP_URL_PATH) === self::PATH) { return self::DIRECTIVE_ALLOW; } // 2st priority: Status code rules $statusCodeParser = new StatusCodeParser($this->statusCode, parse_url($this->base, PHP_URL_SCHEME)); if (($result = $statusCodeParser->accessOverride()) !== false) { return $result; } // 3rd priority: Visit times if ($this->handler->visitTime()->client()->isVisitTime() === false) { return self::DIRECTIVE_DISALLOW; } return false; }
/** * Status code * * @return int|null */ public function getStatusCode() { $statusCodeParser = new StatusCodeParser($this->rawStatusCode, parse_url($this->effective, PHP_URL_SCHEME)); return $statusCodeParser->isValid() ? $this->rawStatusCode : null; }