diff --git a/composer.json b/composer.json index 5122b2e..1f2f87b 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "jdenticon/jdenticon": "^1.0", "yggverse/ftp": "^1.0", "gregwar/captcha": "^1.2", - "yggverse/net": "^1.2", - "yggverse/yo-tools": "^0.1.0" + "yggverse/net": "^1.3", + "yggverse/yo-tools": "dev-main" } } diff --git a/src/cli/document/crawl.php b/src/cli/document/crawl.php index e2b43e2..778df08 100644 --- a/src/cli/document/crawl.php +++ b/src/cli/document/crawl.php @@ -498,15 +498,23 @@ foreach($index->search('') if ($url = $value->attr($settings->attribute)) { - //Make relative links absolute - $url = \Yggverse\YoTools\Link::relative2absolute( - $document->get('url'), - $url, - $scheme, - $host, - $port, + // Convert relative links to absolute + $address = new \Yggverse\Net\Address( + $url ); + if ($address->isRelative()) + { + $base = new \Yggverse\Net\Address( + $document->get('url') + ); + + if ($absolute = $address->getAbsolute($base)) + { + $url = $absolute; + } + } + // Regex rules if (!preg_match($settings->regex, $url)) { @@ -514,7 +522,7 @@ foreach($index->search('') } // External host rules - if (!$settings->external && parse_url($url, PHP_URL_HOST) != $host) + if (!$settings->external && parse_url($url, PHP_URL_HOST) != $address->getHost()) { continue; }