A value in a GET request remains encoded when tested locally, but not on the server

In Ghost 0.5.1-1, I added support for forward slashes in a post's URL, allowing me to fake categories like so:

  • /blog/hello-world/
  • /portfolio/freelance/
  • /sandbox/my-jquery-plugin/

With this change, backlinks to my old WordPress site are still accessible.

When I run the blog locally, I'm able to successfully change the URL from both the editor and the content page under the Ghost admin. The logs show an encoded value is handled:

GET /ghost/api/v0.1/slugs/post/blog%2Fnew-post/ 200 31ms

When I test the feature on my Azure site, the logs show a decoded value, resulting in Ghost displaying an error notification:

GET /ghost/api/v0.1/slugs/post/blog/new-post/ 200 31ms

The notification reads Cannot read property '0' of undefined.

The GET request contains the encoded value:

Request URL: http://obscured/ghost/api/v0.1/slugs/post/blog%2Fnew-post/
Request Method:GET
Status Code:200 OK

Could someone explain why the value is decoded only on my Azure site? In Ghost 0.4.0, I was able to save this change without issue both locally and on the server, yet with 0.5.0 and 0.5.1-1, I cannot.