Make WordPress Core

Ticket #17450: 17450.diff

File 17450.diff, 975 bytes (added by solarissmoke, 13 years ago)
  • wp-includes/class-wp.php

     
    138138                        $error = '404';
    139139                        $this->did_permalink = true;
    140140
    141                         if ( isset($_SERVER['PATH_INFO']) )
     141                        $pathinfo = '';
     142                        if ( isset( $_SERVER['PATH_INFO'] ) ) {
    142143                                $pathinfo = $_SERVER['PATH_INFO'];
    143                         else
    144                                 $pathinfo = '';
    145                         $pathinfo_array = explode('?', $pathinfo);
    146                         $pathinfo = str_replace("%", "%25", $pathinfo_array[0]);
     144                                $pathinfo_array = explode('?', $pathinfo);
     145                                $pathinfo = $pathinfo_array[0];
     146                                // PATH_INFO is url-decoded, we need to encode it to match REQUEST_URI
     147                                $pathinfo = strtolower( urlencode( $pathinfo ) );
     148                                $pathinfo = str_replace( '%2f', '/', $pathinfo );       // but not slashes
     149                        }
     150                       
    147151                        $req_uri = $_SERVER['REQUEST_URI'];
    148152                        $req_uri_array = explode('?', $req_uri);
    149153                        $req_uri = $req_uri_array[0];