For some reason when I redirect with header(\"Location\")
the new page keeps the hash.
So if you\'re on example.com/index.html#signup
The simple answer to "how do I stop it" is to specify an empty hash in the Location
header:
header('Location: /account.html#');
However, this behavior isn't guaranteed across the board. It seems to work in WebKit and IE9 in my quick test. Nevertheless, you've stumbled on a black hole in the HTTP specification.
I'm looking around for answer that works on Firefox. After a while surfing here and there while my cat is keeping meow meow, it leads me to the final solution:
die('<script> window.location='your-url-without-hash';</script>');
Sometimes you want to reserve the hash, sometimes you don't, and because the cross-browser matters so it's better to control client browser to reload and kill the hash.