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.
Merges [39923] to the 4.7 branch.
Fixes #39432.


git-svn-id: https://develop.svn.wordpress.org/branches/4.7@40079 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Rachel Baker 2017-02-19 03:27:13 +00:00
parent 7be9593b68
commit 3daa063286
1 changed files with 5 additions and 1 deletions

View File

@ -264,7 +264,11 @@ function rest_api_loaded() {
$server = rest_get_server();
// 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.
die();