Project

General

Profile

Actions

Bug #8352

closed

URI squeezes a sequence of slashes in merging paths when it shouldn't

Added by knu (Akinori MUSHA) over 11 years ago. Updated about 7 years ago.

Status:
Closed
Target version:
ruby -v:
ruby 2.1.0dev (2013-05-01 trunk 40540) [x86_64-freebsd9]
Backport:
[ruby-core:54729]

Description

RFC 2396 (on which the library currently is based) or RFC 3986 says nothing about a sequence of slashes in the path part except for parsing rules when a URI (path) starts with two slashes.

It should be perfectly valid to have a slash right after another, and there is no reason to "normalize" a sequence of slashes into a single slash, which uri actually does in merging paths:

URI.parse('http://example.com/foo//bar/')+'.'
=> #<URI::HTTP:0x0000080303d2b0 URL:http://example.com/foo/bar/>

Fixing this may be as easy as changing the regexp in URI::Generic#split_path from %r{/+} to %r{/}, but I wonder how the impact of incompatibility it may introduce would be.


Files


Related issues 2 (0 open2 closed)

Related to Ruby master - Feature #2542: URI lib should be updated to RFC 3986Closednaruse (Yui NARUSE)01/01/2010Actions
Has duplicate Ruby master - Bug #12562: URI merge removes empty segment contrary to RFC 3986ClosedActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0