예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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;
 }