diff --git a/core/lib/Drupal/Core/Routing/UrlGenerator.php b/core/lib/Drupal/Core/Routing/UrlGenerator.php index 47e191f..f233972 100644 --- a/core/lib/Drupal/Core/Routing/UrlGenerator.php +++ b/core/lib/Drupal/Core/Routing/UrlGenerator.php @@ -54,7 +54,7 @@ class UrlGenerator implements UrlGeneratorInterface { /** * Overrides characters that will not be percent-encoded in the path segment. * - * The format are the two first parameter of str_replace(). + * The first two elements are the first two parameters of str_replace(). * * @see \Symfony\Component\Routing\Generator\UrlGenerator */ @@ -62,7 +62,8 @@ class UrlGenerator implements UrlGeneratorInterface { // the slash can be used to designate a hierarchical structure and we want allow using it with this meaning // some webservers don't allow the slash in encoded form in the path for security reasons anyway // see http://stackoverflow.com/questions/4069002/http-400-if-2f-part-of-get-url-in-jboss - ['%2F'], ['/'] + ['%2F'], // Map from these encoded characters. + ['/'], // Map to these decoded characters. ]; /** @@ -214,7 +215,8 @@ protected function doGenerate(array $variables, array $defaults, array $tokens, } // The contexts base URL is already encoded (see Symfony\Component\HttpFoundation\Request) - $url = str_replace($this->decodedChars[0], $this->decodedChars[1], rawurlencode($url)); + list($search_strings, $replacement_strings) = $this->decodedChars; + $url = str_replace($search_strings, $replacement_strings, rawurlencode($url)); // Drupal paths rarely include dots, so skip this processing if possible. if (strpos($url, '/.') !== FALSE) {