So I think this is a bug,because the ?page=2 is legal relative url in html.
It's legal under RFC 3986, but not under RFC 2396, as far as I know. The URI library is written to conform to the latter. There was a suggestion a little while ago to update it, but I don't know that anything came of it. If I had the time I'd do it myself, but I'm under the gun at the moment.
Maybe I should report it to the Akira Yamada the original author of URI lib.
The URI lib should be updated since we will meet many cases like that with
RFC 3986.
I have checked the source codes of URI lib. I found it completely follow the
RFC 2396.
···
2007/7/30, Alex Young <alex@blackkettle.org>:
nan wu wrote:
> I use the URI.merge method, and I met something incorrect. It is a bug
of
> URI lib?
>
> For example:
>
> require 'uri'
>
> site_url = 'http://www.try.com/test.aspx'
> cur_url ='?page=2'
>
> site=URI.parse(site_url)
>
> cur=URI.parse(cur_url)
>
> p farther.merge(cur)
>
> The result:
>
> #<URI::HTTP:0x15bc060 URL:Minimal Grid Portfolio; Minimal Grid Portfolio;
>
> But what I want is:
>
> *http://www.try.com/test.aspx?page=2*
>
> So I think this is a bug,because the ?page=2 is legal relative url in
html.
>
It's legal under RFC 3986, but not under RFC 2396, as far as I know.
The URI library is written to conform to the latter. There was a
suggestion a little while ago to update it, but I don't know that
anything came of it. If I had the time I'd do it myself, but I'm under
the gun at the moment.