lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lynx-dev] Cannot open: https://m.medicalxpress.com/page2.html


From: Bela Lubkin
Subject: Re: [Lynx-dev] Cannot open: https://m.medicalxpress.com/page2.html
Date: Wed, 14 Aug 2019 15:40:36 -0700

Ian Collier wrote:

> The link is written (some syntax elided):
>
>  <a href="./page2.html">load more</a>
>
> Most other browsers, including links, don't copy this dot into the URL
> when following the link, so they don't experience a problem.
>
> Is Lynx correct to copy the dot?  I think not.  According to RFC 1808
> in Section 4 where it describes an algorithm for resolving relative
> URLs, in Step 6:
>
>    a) All occurrences of "./", where "." is a complete path
>       segment, are removed.
>
> This carries through into RFC 3986 where section 5.2.4 describes a
> "Remove Dot Segments" algorithm.

Lynx appears to be slightly at fault here.

However, their web server is grossly at fault.  '/./' in a URL is just a
reference to the current directory; www.foo.bar/baz/bletch.html should
be understood identically to www.foo.bar/./baz/./bletch.html.  I don't
remember ever having heard of an HTTP server which gets this wrong,
before today.  (Server claims to be running some unspecified version of
Apache.  I don't believe any version of Apache is ever likely to have
had this problem.  There may be a default rewrite rule that is always
present, and they've somehow managed to delete?)

The third (probably inadvertent) culprit is the web page / page author
itself.  IF one is in the unique circumstance of using an incompetent
HTTP server which chokes on '.' references in a path, one should
definitely avoid constructing such paths.  The reference should read:

  <a href="page2.html">load more</a>

======

For practical purposes, regardless of whose fault this is: having
arrived at https://m.medicalxpress.com/./page2.html (and received
a 404), you can fix the situation by hitting 'E' (edit current
page URL); arrow back far enough to erase a './', leaving only
https://m.medicalxpress.com/page2.html; hit Enter, and you're there.

>Bela<



reply via email to

[Prev in Thread] Current Thread [Next in Thread]