Configuration:
<Route name="app" path='/' handler={App}>
// ...
<Route name="deploy" handler={DeployPage}/>
// ...
</Route>
If http://localhost:3000/deploy?url=github.com is called directly, routing fails:
Cannot GET /deploy?url=github.com
while http://localhost:3000/deploy?url=github%2Ecom works.
I double checked it and it works fine:

I had the same issue proved to be webpack dev server with history-api-fallback enabled failed to pass these urls to the react app. Hacked webpack config to pass these to react with:
...
devServer: {
proxy: {
'/*.*': { // Match all URL's with period/dot
target: 'http://localhost:8080/', // send to webpack dev server
rewrite: function(req){
req.url='index.html'; // Send to react app
}
}
}
}
...
Most helpful comment
I had the same issue proved to be webpack dev server with history-api-fallback enabled failed to pass these urls to the react app. Hacked webpack config to pass these to react with: