What you're seeing is expected browser behavior.
If you specify a local URI for a redirect, the browser will automatically append that redirect location to the current URL. If you want the client to make a request with the same protocol (http or https) to the same FQDN but with a new path of /fallback.html, you should specify the fallback host as /fallback.html. This doesn't follow the exact requirements of RFC2616 but it works.
If you want to replace the host in the redirect, you will need to specify a full URL like http://www.example.com/fallback.html.
Aaron