WordPress.org

Make WordPress Core

Ticket #10249: page-slugs-urldecode-other-way-round.diff

File page-slugs-urldecode-other-way-round.diff, 1.0 KB (added by nbachiyski, 8 years ago)
  • wp-includes/classes.php

     
    170170                        // front.  For path info requests, this leaves us with the requesting
    171171                        // filename, if any.  For 404 requests, this leaves us with the
    172172                        // requested permalink.
    173                         $req_uri = str_replace($pathinfo, '', $req_uri);
     173                        $req_uri = str_replace($pathinfo, '', rawurldecode($req_uri));
    174174                        $req_uri = trim($req_uri, '/');
    175175                        $req_uri = preg_replace("|^$home_path|", '', $req_uri);
    176176                        $req_uri = trim($req_uri, '/');
     
    207207                                        $request_match = $req_uri . '/' . $request;
    208208
    209209                                if ( preg_match("#^$match#", $request_match, $matches) ||
    210                                         preg_match("#^$match#", urldecode($request_match), $matches) ) {
     210                                        preg_match("#^$match#", urldecode($request_match), $matches) ||
     211                                        preg_match("#^$match#", strtolower(rawurlencode($request_match)), $matches)) {
    211212                                        // Got a match.
    212213                                        $this->matched_rule = $match;
    213214