svasti wrote:The Linkchecker gave some false alarms:
Well, the link checker is flawed (to say the least). You can get an overview by looking at tests/unit/LinkCheckerTest.php function dataForLinkStatus() where working as well as faulty behavior is tested.
svasti wrote:Linkchecker wrote:Link: hier
Linkziel: ./userfiles/downloads/Obstbaumschnitt-Termine%202015.pdf
Fehler: Fehlerhafter interner Link, Seite existiert nicht.
That is because the link checker doesn't urldecode() filenames. It seems the following patch should fix this bug:
Code: Select all
Index: cmsimple/classes/LinkChecker.php
===================================================================
--- cmsimple/classes/LinkChecker.php (revision 1468)
+++ cmsimple/classes/LinkChecker.php (working copy)
@@ -200,7 +200,7 @@
global $c, $u, $cl, $pth, $cf;
if (isset($test['path']) && !isset($test['query'])) {
- $filename = $test['path'];
+ $filename = urldecode($test['path']);
if (is_file($filename) && is_readable($filename)) {
return '200';
}
(A unit test should be also added.)
svasti wrote:Linkchecker wrote:Link: 'Netzwerk Blühende Landschaft'
Linkziel:
http://www.bluehende-landschaft.de
Fehler: Fehlerhafter externer Link, Seite nicht erreichbar.
http Statuscode: 404
That's rather interesting! While `curl
http://www.bluehende-landschaft.de/` works as expected `curl -I
http://www.bluehende-landschaft.de/` (i.e. a HTTP HEAD request) fails with 404 Not Found. It seems to me that is an erroneous response, because according to
RFC 7231, section 4.3.2:
The HEAD method is identical to GET except that the server MUST NOT send a message body in the response (i.e., the response terminates at the end of the header section). The server SHOULD send the same header fields in response to a HEAD request as it would have sent if the request had been a GET, except that the payload header fields (Section 3.3) MAY be omitted.
Well, the spec says "SHOULD", so the response is not erroneous, but still I can't see any reason for this behavior. Actually, they should be happy that a HEAD request is made instead of a GET, if only the headers are needed. Do you know the site operators; can you contact them?