REST API: Correctly serve the index with PATH_INFO

When hitting the index, untrailingslashit() would make the REST route empty, which would then use the fallback inside WP_REST_Server. This isn't a problem most of the time, but WP_REST_Server contains a fallback to PATH_INFO. Combined with PATH_INFO permalinks, this would give a 404 on the API index, as it attempts to look up a route for "/wp-json/".

Props ccprog.
Fixes #39432.


git-svn-id: https://develop.svn.wordpress.org/trunk@39923 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan McCue 2017-01-17 05:39:15 +00:00
parent bbf129c935
commit 7d2c104068
1 changed files with 5 additions and 1 deletions

View File

@ -256,7 +256,11 @@ function rest_api_loaded() {
$server = rest_get_server(); $server = rest_get_server();
// Fire off the request. // Fire off the request.
$server->serve_request( untrailingslashit( $GLOBALS['wp']->query_vars['rest_route'] ) ); $route = untrailingslashit( $GLOBALS['wp']->query_vars['rest_route'] );
if ( empty( $route ) ) {
$route = '/';
}
$server->serve_request( $route );
// We're done. // We're done.
die(); die();