WebRequest::getRequestURL: Follow up Ibe00a6b8
authorKevin Israel <pleasestand@live.com>
Wed, 27 Mar 2013 23:44:48 +0000 (19:44 -0400)
committerKevin Israel <pleasestand@live.com>
Fri, 29 Mar 2013 17:28:35 +0000 (13:28 -0400)
* Only match consecutive slashes at the beginning of the URL, where
  they are actually a problem.
* Fix bug 46607 in cases where the server provides an absolute URL.

Change-Id: Ibe00a6b8722786170d09b846c1c4054b73da3d9e

includes/WebRequest.php

index 739340c..3bdf645 100644 (file)
@@ -656,14 +656,11 @@ class WebRequest {
                }
 
                if( $base[0] == '/' ) {
-                       if( isset( $base[1] ) && $base[1] == '/' ) { /* More than one slash will look like it is protocol relative */
-                               return preg_replace( '!//*!', '/', $base );
-                       }
-
-                       return $base;
+                       // More than one slash will look like it is protocol relative
+                       return preg_replace( '!^/+!', '/', $base );
                } else {
                        // We may get paths with a host prepended; strip it.
-                       return preg_replace( '!^[^:]+://[^/]+/!', '/', $base );
+                       return preg_replace( '!^[^:]+://[^/]+/+!', '/', $base );
                }
        }